我试图从http://cinematreasures.org/获得美国电影院的列表,作为我学习python和scrapy过程的一部分。
我写了一个爬行器来抓取网站,但是运行它时没有得到任何响应。请查看附件中的html树、我的爬行器、运行爬行器时的响应以及我对seetings.py所做的更改的图片。
我想尝试代理IP的,但我不知道如何使用他们与scrapy.请帮助
我已经尝试了在scrapy壳的代码,它的工作很好。
当我试图运行它通过scrapy爬行listor我什么都没有得到!
我只是希望能够通过Pandas导出到csv,如果可能的话。
这是我的代码:
name = 'listall'
allowed_domains = ['cinematreasures.org']
start_urls = ['http://cinematreasures.org/theaters/united-states?page=1&status=all']
# url = 'http://cinematreasures.org/theaters/united-states?page={}&status=all'
def parse(self, response):
for row in response.xpath('//table//tr')[1:]:
name = row.xpath('td//text()')[2].get()
address = row.xpath('td//text()')[4].get()
yield {
'Name':name,
'Address':address,
}
next_page = response.xpath("//a[@class='next_page']").get()
if next_page:
yield scrapy.Request(response.urljoin(next_page))
1条答案
按热度按时间qgelzfjb1#
您的
xpath
表达式不正确。当您使用相对xpath
表达式时,它们需要以"./"
开头,并且在我看来,使用类说明符比索引容易得多。输出