小编sge*_*hew的帖子

使用Scrapy使用“加载更多”按钮来刮除无限滚动页面

如何使用无限滚动方式抓取网页,其中响应为html / text而不是json。

我的第一次尝试是使用Rule和LinkExtractor,它使我获得了约80%的工作网址

class JobsetSpider(CrawlSpider):
    name = 'test'
    allowed_domains = ['jobs.et']
    start_urls = ['https://jobs.et/jobs/']

    rules = (
        Rule(LinkExtractor(allow='https://jobs.et/job/\d+/'), callback='parse_link'),
        Rule(LinkExtractor(), follow=True),
    )

    def parse_link(self, response):
        yield {
            'url': response.url
        }
Run Code Online (Sandbox Code Playgroud)

我的第二次尝试是使用SCRAPING INFINITE SCROLLING PAGES中的示例,但是响应是在text / html中而不是json中。

单击“加载更多”按钮后,我可以从Chrome开发者工具网络上看到请求的网址

https://jobs.et/jobs/?searchId=1509738711.5142&action=search&page=2
Run Code Online (Sandbox Code Playgroud)

而“页面”数增加。

我的问题是

  1. 当点击“加载更多”按钮时,我如何从响应头中提取上面的URL
  2. 有没有更好的方法来解决此问题?

python scrapy web-scraping python-3.x

5
推荐指数
1
解决办法
5179
查看次数

标签 统计

python ×1

python-3.x ×1

scrapy ×1

web-scraping ×1