我是网络抓取和Scrapy的新手。我希望你能帮助我。
我正在尝试从使用标记的网页中提取数据。通常,如果span标记使用的是类,例如:
<span class="class_A>Hello, World!</span>
我会使用以下代码来检索文本。
request.css('span.class_A::text').extract()
然而,当html现在使用&#34; id&#34;而不是&#34;类&#34;,例如,
<span id="id_A>Hello, Universe!</span>
以下代码不再有效。
request.css('span.id_A::text').extract()
请帮忙!使用&#34; id&#34;
提取数据的正确方法是什么感谢您的帮助!
答案 0 :(得分:3)
这是一种方式。
>>> HTML = '''
... <span id="id_A">Hello, Earth</span>
... <span id="id_B">Hello, Universe</span>
... '''
>>> from scrapy.selector import Selector
>>> selector = Selector(text=HTML)
>>> selector.css('[id="id_A"]::text').extract()
['Hello, Earth']
可替换地,
>>> HTML = '''
... <span id="id_A">Hello, Earth</span>
... <span id="id_B">Hello, Universe</span>
... '''
>>> from scrapy.selector import Selector
>>> selector = Selector(text=HTML)
>>> selector.css('span#id_A::text').extract()
['Hello, Earth']
Scrapy使用cssselect
后面的W3 Selectors Level 3答案 1 :(得分:3)
问题是你正在使用&#34;类选择器&#34; (请查看this以获取参考)。你应该使用&#34; id选择器&#34;,这应该有效:
response.css('#id_A::text').extract()