当前位置:   article > 正文

求解:scrapy 的回调函数,在parse中先把当前页面列表中每一项遍历,该页结束跳转到下一页,但是执行结果是我只得到了第一页的爬取结果_scrapy循环遍历中只yield一次

scrapy循环遍历中只yield一次
def parse(self, response):
    # print(response.text)
    uri = 'https://www.liepin.com'
    h3List = response.css('h3')
    print(len(h3List))
    del h3List[len(h3List) - 3:len(h3List)]
    print(len(h3List))
    # # test
    # url = h3List[1].css('a::attr("href")').extract_first()
    # job_url = str(url)

    # 遍历该页面的职位详情url
    for index, h3 in enumerate(h3List):
        url = h3.css('a::attr("href")').extract_first()
        job_url = str(url)
        if 'https://www.liepin.com' not in str(url):
            job_url = 'https://www.liepin.com' + str(url)
        # job_url 是列表中岗位的详情页url
        # 发起request 爬取详情页面
        print(index)
        print(job_url)
        yield scrapy.Request(job_url, callback=self.get_job_info)
    # 当前页爬取完毕,下一页
    a_selector_list = response.css('.pagerbar a::attr("href")').re('</span>.*?<a href="(.*?)">下一页</a>')
    next = uri+str(a_selector_list)
    print('*****/*/*/*/*/*/*/*/*/*/*下一页')
    yield scrapy.Request(next, callback=self.parse)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

一个列表页面:里面有多条项目,每一个项目点击进去是详情页面。列表页面下方有下一页,该页所有的项目爬取完了,想继续”下一页“,
yield scrapy.Request(next, callback=self.parse),这一步就执行不到

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/887465
推荐阅读
相关标签
  

闽ICP备14008679号