【发布时间】:2018-04-16 16:20:03
【问题描述】:
如何在响应为 html/text 而不是 json 的情况下报废无限滚动的网页。
我的第一次尝试是使用 Rule 和 LinkExtractor,这让我获得了大约 80% 的工作 url
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
}
我的第二次尝试是使用来自 SCRAPING INFINITE SCROLLING PAGES 的示例,但响应是 text/html 而不是 json。
当点击“加载更多”按钮时,我可以从 Chrome 开发工具上的网络中看到请求 url
https://jobs.et/jobs/?searchId=1509738711.5142&action=search&page=2
同时“页”数增加。
我的问题是
- 如何使用scrapy从响应头中提取上面的url 点击“加载更多”按钮
- 有没有更好的方法来解决这个问题?
【问题讨论】:
标签: python python-3.x web-scraping scrapy