以下步骤建议在写python代码前用 scrapy shell 进行尝试。
Request 请求
首先对目标网站进行请求:
scrapy shell <url>
之后使用xpath语法进行标签内容提取:
In [1]: response.xpath(<xpath_info>)
Out [1]: []
发现提取内容为空,则此网页不是将内容直接写入HTML文件中,此时可以response.text
观察返回内容,发现并没有待爬取信息的内容。
JSON 获取
对于上述情况,常用的方法是网页进行JSON 请求获取渲染数据。
通过开发者工具获取JSON 请求:
- XHR中寻找JSON
通常JSON内容在开发者工具的 Network 选项卡下的 XHR 中: - 解析response
在XHR中找到渲染内容对应的JSON请求,点击右边的Preview逐层寻找待提取的内容:
URL生成
接下来就是怎么提取待爬取信息了。因为具体的信息在下一个网页中,但是JSON中没有直接的URL内容,那么就是通过查询得到的,任意点开几个待爬取页面的链接,可以发现对应的页面URL中只有某个参数(以infoId为例)不同,那么就知道每个具体页面详情通过