newbie_no_1
newbie_no_1
采纳率100%
2017-12-08 09:03

python 爬虫 pyspider遇到的问题

已采纳

pyspider on_start函数中
如果url改变,写个循环判断之类的会自动在左面生成所有分页路径,但我这个是ajax请求,url不变,只是参数中的分页参数在变,我该如何写才能让左面生成分页请求

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • shsongtao shsongtao 4年前

    另外 才注意到 你现在的这个程序写的有问题的 你在response里面写的请求? 应该是在请求的时候就将参数发过去的 程序有问题啊
    for循环要写在前面的on start 函数里面

    点赞 评论 复制链接分享
  • newbie_no_1 newbie_no_1 4年前

    更新一下,上面图中for循环的方式依然只能抓取第一页的数据,我采用的是楼上的方案,加一个无用参数让其自动生成就OK了。

    点赞 评论 复制链接分享
  • shsongtao shsongtao 4年前

    思路是差不多了 其实 对于一些url来说 你加一些无用的参数 是不会导致查询不可用的 比如你在url后面加上?random=10 这样的 还是能正常获取你需要的内容
    这就是我一开始说 你如果知道哪些需要哪些url 在后面加一些参数 变成不同url的原因

    点赞 评论 复制链接分享
  • shsongtao shsongtao 4年前

    你现在的这个程序可以爬取1~9页的数据, 难道还是达不到你的目标吗?

    点赞 评论 复制链接分享
  • newbie_no_1 newbie_no_1 4年前

    图片说明

    点赞 评论 复制链接分享
  • shsongtao shsongtao 4年前

    方案1:
    只能通过确定哪些 url是ajax类的,然后使用正则将 ajax类的单独提出来 ,所有的该url的请求完成后,再继续进行 .
    方案二:
    在生成url 的时候,如果有分页,在生成的url后面加上分页的标识符,如http://xxxx?page=1 这样,以便生成不同的url,再进行抓取

    点赞 评论 复制链接分享