pyspider on_start函数中
如果url改变,写个循环判断之类的会自动在左面生成所有分页路径,但我这个是ajax请求,url不变,只是参数中的分页参数在变,我该如何写才能让左面生成分页请求
另外 才注意到 你现在的这个程序写的有问题的 你在response里面写的请求? 应该是在请求的时候就将参数发过去的 程序有问题啊
for循环要写在前面的on start 函数里面
方案1:
只能通过确定哪些 url是ajax类的,然后使用正则将 ajax类的单独提出来 ,所有的该url的请求完成后,再继续进行 .
方案二:
在生成url 的时候,如果有分页,在生成的url后面加上分页的标识符,如http://xxxx?page=1 这样,以便生成不同的url,再进行抓取
你现在的这个程序可以爬取1~9页的数据, 难道还是达不到你的目标吗?
思路是差不多了 其实 对于一些url来说 你加一些无用的参数 是不会导致查询不可用的 比如你在url后面加上?random=10 这样的 还是能正常获取你需要的内容
这就是我一开始说 你如果知道哪些需要哪些url 在后面加一些参数 变成不同url的原因
更新一下,上面图中for循环的方式依然只能抓取第一页的数据,我采用的是楼上的方案,加一个无用参数让其自动生成就OK了。