2015-10-18 18 views
0

我想使用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。那麼我怎樣才能選擇這個中文網站的「下一頁」網址?任何幫助讚賞。我想通過屬性來識別某些url,但是如果感興趣的屬性是外來字符呢?

回答

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]) 
0

添加@意味着屬性 - 嘗試如下─

response.xpath("//a[@title = '下一頁']") 

您可能需要得到響應爲Unicode,細節here

相關問題