對於一個非營利性的大學作業,我試圖從網站www.rateyourmusic.com使用Python中的scrapy框架來抓取數據,我已經取得了少量成功,因爲我已經能夠刮掉一個名稱來自藝術家頁面的藝術家,但其他信息(出生日期,國籍)的xpath對我來說很難被刮掉。你們中的任何人都知道這些對象的正確xpath是什麼嗎?這裏是我的解析方法,至少爲藝術家的名字工作。Python Scrapy Xpath?
def parse_dir_contents(self, response):
item = rateyourmusicartist()
for sel in response.xpath('//div/div/div/div/table/tbody/tr/td'):
item['dateofbirth'] = sel.xpath('td/text()').extract() #these two selectors aren't working
item['nationality'] = sel.xpath('td/a/text()').extract()
for sel in response.xpath('//div/div/div/div/div/h1'):
item['name'] = sel.xpath('text()').extract() #this is the one that works
yield item
這裏是我刮http://rateyourmusic.com/artist/kanye_west
卸下'TD /'從兩個目前不工作的XPath。然後他們應該工作。 – gtlambert
感謝您的注意,不幸的是我已經嘗試過這樣做了,它不起作用,我添加了td /以查看是否會有所作爲,在兩個單獨的while循環中進行解析會有所作爲?我假設我將不得不因爲他們在頁面的不同部分來源 – user3545370
你的問題是你在虛擬DOM上傳遞(我猜你看着檢查員來獲取HTML結構)。您必須檢查頁面上的真實來源。 F.X.在頁面上沒有tbody標籤,但只在虛擬DOM中。 –