我想使用Scrapy递归地抓取数据 - 在下一个页面之后从一个页面中删除数据。我的蜘蛛需要按照"下一页"按钮。原则上,"下一页"网址可以由response.xpath("a[@title = 'next page']")
标识。然而,由于网站是中文(http://bxt.harbin.gov.cn/hrb_bzbxt/list_hf.php),我使用的选择器命令是response.xpath("a[@title = '下一页']")
。下一页的意思是"下一页。"这不起作用,错误消息是" ValueError:所有字符串必须是XML兼容的:Unicode或ASCII,没有NULL字节或控制字符。"网站的编码是gbk。那么如何选择"下一页"这个中文网站的网址?任何帮助表示赞赏。
答案 0 :(得分:1)
尝试使用unicode代码点表示“下一页”(即'u'\ u4e0b \ u4e00 \ u9875'),如下所示:
next_page_link = response.xpath(u'//a[@title="\u4e0b\u4e00\u9875"]/@href')
if next_page_link: yield Request(next_page_link.extract()[0])
答案 1 :(得分:0)