提问人:Claire Duong 提问时间:6/12/2020 更新时间:6/13/2020 访问量:807
如何使用 scrapy、xpath、python 获取锚标签中的文本和 href 值
How to get text and href value in anchor tag with scrapy, xpath, python
问:
我有一个这样的HTML文件:
<div ckass="jokes-nav">
<ul>
<li><a href="http://link_1">Link 1</a></li>
<li><a href="http://link_2">Link 2</a></li>
</ul>
</div>
在文件夹 spiders 中,我有一个文件 jokes.py 如下所示:
import scrapy
from demo_project.items import JokeItem
from scrapy.loader import ItemLoader
class JokesSpider(scrapy.Spider):
name = 'jokes'
start_urls = [
'http://www.laughfactory.com/jokes/'
]
def parse(self, response):
for joke in response.xpath("//div[@class='jokes-nav']/ul"):
l = ItemLoader(item = JokeItem(), selector = joke)
l.add_xpath('joke_title', ".//li/a/text()")
""" yield {
'joke_text': joke.xpath(".//div[@class='joke-text']/p").extract_first()
} """
yield l.load_item()
我在我的 main.py 中将类称为 JokesSpider(此文件位于根目录),这是我的代码
from scrapy.crawler import CrawlerProcess
from demo_project.spiders.jokes import JokesSpider
process = CrawlerProcess(settings={
"FEEDS": {
"items.json": {"format": "json"},
},
})
process.crawl(JokesSpider)
process.start() # the script will block here until the crawling is finished
我想将数据写入items.json,但是当我运行此代码时,items.json中不包含任何内容,我该如何解决这个问题。谢谢
答:
2赞
Patrick Klein
6/13/2020
#1
您可以设置 和 设置以将数据保存在 json 文件中。FEED_FORMAT
FEED_URI
process = CrawlerProcess(settings={
'FEED_FORMAT': 'json',
'FEED_URI': 'items.json'
})
评论
pipelines.py