我想从这个网站上提取数据:http://www.pokepedia.fr/Pikachu 我正在学习python和如何使用Scrapy,我的问题是:为什么我不能用Xpath检索数据?在
当我在浏览器中测试Xpath时,它会返回正确的值。(谷歌Chrome)
import re
from scrapy import Spider
from scrapy.selector import Selector
from stack.items import StackItem
class StackSpider(Spider):
name = "stack"
allowed_domains = ["pokepedia.fr"]
start_urls = [
"http://www.pokepedia.fr/Pikachu",
]
def unicodize(seg):
if re.match(r'\\u[0-9a-f]{4}', seg):
return seg.decode('unicode-escape')
return seg.decode('utf-8')
def parse(self, response):
pokemon = Selector(response).xpath('//*[@id="mw-content-text"]/table[2]')
for question in pokemon:
item = StackItem()
item['title'] = question.xpath(
'//*[@id="mw-content-text"]/table[2]/tbody/tr[1]/th[2]/text()').extract()[0]
yield item
我想在页面中提取口袋妖怪的名字,但当我使用:
^{pr2}$我的Json输出:
[
在我的控制台中有一个错误:
IndexError : list index out of range
我听了这首短裙:https://realpython.com/blog/python/web-scraping-with-scrapy-and-mongodb/
试试这个
浏览器会添加tbody标记。它们不是原始的HTML格式,这就是scrapy返回空文件的原因。在
附言:你可以考虑使用
^{pr2}$然后用
用于调试和测试。在
相关问题 更多 >
编程相关推荐