我是网络抓取和 Scrapy 的新手。我希望你能帮助我。
我正在尝试从使用标签的网页中提取数据。通常,如果 span 标签使用一个类,例如:
<span class="class_A>Hello, World!</span>
我将使用以下代码来检索文本。
request.css('span.class_A::text').extract()
但是,例如,当 html 现在使用“id”而不是“class”时,
<span id="id_A>Hello, Universe!</span>
下面的代码不再起作用。
request.css('span.id_A::text').extract()
请帮忙!使用“id”提取数据的正确方法是什么。
感谢您的帮助!
最佳答案
这是一种方式。
>>> 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
关于web-scraping - Scrapy:从使用 "id"选择器而不是 "class"的 html 标签中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313128/