我正在尝试使用Scrapy抓取以下链接下的网页。 http://nc.mofcom.gov.cn/channel/qytc2017/list.shtml?p_index=210000 当我试图爬下一页时, nc.mofcom.gov.cn/channel/qytc2017/list.shtml?p_index=210000&page=2 我发现下一页的href是用Javascript编写的。 首先,我尝试使用下面的代码找到所有可能的。
def parse_item(self, response):
for pageNum in range(1, 10):
new_url = response.url + "&page=%d" % pageNum
yield Request(new_url, callback=self.parse_detailpage)
因为只有子页面而且它不会例外;但是,我发现了这一点 nc.mofcom.gov.cn/channel/qytc2017/list.shtml?p_index=210000&page=7和nc.mofcom.gov.cn/channel/qytc2017/list.shtml?p_index=210000&page=6分享相同的内容content.Indeed,我还注意到一些页面有超过10个子页面,我无法继续抓取。任何人都可以给我一些想法吗?我没有10个声望,我可以提供超过1个链接和图像,我真的很抱歉。我真的很感激,如果有人可以提供帮助。
答案 0 :(得分:0)
您可以使用Splash使用JavaScript呈现网页。 Splash通过scrapy-splash与Scrapy无缝集成。
另一种方法是解析包含有关分页信息的脚本。该脚本包含存在的页数:
var v_PageCount = 6;
您可以使用Scrapy提取脚本内容,然后使用例如js2xml库来提取此页面计数。