Python 如何使用scrapy刮取具有多个页面的网站
我正在尝试使用scrapy刮(有多个页面)。问题是我找不到下一页的URL。 你对如何使用多个页面(使用scrapy)刮取网站有什么想法,或者如何解决我在代码中遇到的错误 我尝试了下面的代码,但不起作用:Python 如何使用scrapy刮取具有多个页面的网站,python,html,http,web-scraping,scrapy,Python,Html,Http,Web Scraping,Scrapy,我正在尝试使用scrapy刮(有多个页面)。问题是我找不到下一页的URL。 你对如何使用多个页面(使用scrapy)刮取网站有什么想法,或者如何解决我在代码中遇到的错误 我尝试了下面的代码,但不起作用: class AbcdspiderSpider(scrapy.Spider): """ 类文档字符串 """ 名称='abcdspider' 允许的_域=['abcd-terroir.smartrezo.com'] 字母表=列表(string.ascii_小写) url=”https://abcd
class AbcdspiderSpider(scrapy.Spider):
"""
类文档字符串
"""
名称='abcdspider'
允许的_域=['abcd-terroir.smartrezo.com']
字母表=列表(string.ascii_小写)
url=”https://abcd-terroir.smartrezo.com/n31-france/annuaireABCD.html?page=1&spe=1&anIDS=31&search="
start_url=[url+字母表中字母对应的字母]
主url=”https://abcd-terroir.smartrezo.com/n31-france/"
爬网\u datetime=str(datetime.datetime.now().strftime(“%Y-%m-%d%H:%m:%S”))
start\u time=datetime.datetime.now()
def解析(自我,响应):
self.crawler.stats.set_值(“开始时间”,self.start_时间)
尝试:
page=response.xpath('//div[@class=“pageStuff”]/span/text()).get()
页面最大=获取数量页面(第页)
对于范围内的索引(最大页数):
producer\u list=response.xpath('//div[@class=“clearfix-encart\u-ann”]/@onclick').getall()
对于生产者列表中的生产者:
link\u producer=self.main\u url+producer
生成scrapy.Request(url=link\u producer,callback=self.parse\u details)
next_page_url=“/annuaireABCD.html?page={}&spe=1&anIDS=31&search=“.format(index)
如果“下一页”url不是“无”:
产生scrapy.Request(response.urljoin(self.main\u url+next\u page\u url))
例外情况除外,如e:
self.crawler.stats.set_值(“error”,e.args)
我得到这个错误:
'error': ('range() integer end argument expected, got unicode.',)
错误在这里:
page = response.xpath('//div[@class="pageStuff"]/span/text()').get()
page_max = get_num_page(page)
range函数需要的是整数值(1,2,3,4等),而不是unicode字符串(“第1/403页”
)
我对射程误差的建议是
page = response.xpath('//div[@class="pageStuff"]/span/text()').get().split('/ ')[1]
for index in range(int(page)):
#your actions