scrapy爬取今日头条
时间: 2023-10-20 21:08:38 浏览: 47
使用 Scrapy 爬取今日头条可以分为以下步骤:
1. 创建 Scrapy 项目
```
scrapy startproject toutiao
```
2. 创建一个 Spider
在 Scrapy 项目中,每个爬虫都是由一个 Spider 类来定义的。在 `spiders` 文件夹下创建一个 `toutiao_spider.py` 文件,并编写以下代码:
```python
import scrapy
class ToutiaoSpider(scrapy.Spider):
name = "toutiao"
start_urls = [
'https://www.toutiao.com/ch/news_hot/',
]
def parse(self, response):
for article in response.css('div.card'):
yield {
'title': article.css('div.title-box a::text').get(),
'url': article.css('div.title-box a::attr(href)').get(),
'source': article.css('a.lbtn.source::text').get(),
'time': article.css('span.time::text').get(),
}
next_page = response.css('a.next::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
```
在 Spider 中,我们首先指定了 Spider 的名称和起始 URL,然后定义了一个 `parse` 方法,用于解析响应并提取数据。在这个例子中,我们使用 CSS 选择器来提取文章的标题、URL、来源和发布时间,并将其作为字典类型的 item 返回。最后,我们通过在响应中查找“下一页”的链接来实现翻页,并使用 `response.follow` 方法来跟踪这些链接,最终递归调用 `parse` 方法。
3. 运行 Spider
完成 Spider 的编写后,我们可以在命令行中运行以下命令来启动爬虫:
```
scrapy crawl toutiao -o articles.csv
```
此命令将运行名为 `toutiao` 的 Spider,并将结果输出到 `articles.csv` 文件中。您可以将此文件用于进一步的数据分析和处理。