ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
翻页请求的思路如下: (1)找到下一页的url地址; (2)调用`yield scrapy.Request`向下一页发出请求; ```python class Request(object_ref): def __init__(self, url, callback=None, method='GET', headers=None, body=None, cookies=None, meta=None, encoding='utf-8', priority=0, dont_filter=False, errback=None, flags=None, cb_kwargs=None) url:url callback:表示当前的url的响应交给哪个函数去处理 meta:实现数据在不同的解析函数中传递,meta默认带有部分数据,比如下载延迟,请求深度等 dont_filter:默认为False,会过滤请求的url地址,即请求过的url地址不会继续被请求, 对需要重复请求的url地址可以把它设置为Ture,比如贴吧的翻页请求, 页面的数据总是在变化;start_urls中的地址会被反复请求,否则程序不会启动 method:指定POST或GET请求 headers:接收一个字典,其中不包括cookies cookies:接收一个字典,专门放置cookies body:接收json字符串,为POST的数据,发送payload_post请求时使用 ``` ```python """ 例: books.py @Date 2021/4/26 """ import scrapy class BooksSpider(scrapy.Spider): name = 'books' allowed_domains = ['item.jd.com'] start_urls = ['https://item.jd.com/13201282.html'] def parse(self, response): yield scrapy.Request( url='https://item.jd.com/13142372.html', callback=self.parse_next, meta={'pre': response.url} ) def parse_next(self, response): # 或者 response.meta['pre'] pre = response.meta.get('pre') current = response.url print(pre) # https://item.jd.com/13201282.html print(current) # https://item.jd.com/13142372.html ```