scrapy爬取腾讯新闻
时间: 2024-12-22 10:18:33 浏览: 8
Scrapy是一个强大的Python网络爬虫框架,它可以帮助开发者高效地抓取网站数据,包括腾讯新闻。要使用Scrapy爬取腾讯新闻,可以按照以下步骤操作:
1. **安装Scrapy**:
首先确保你已经安装了Python,然后通过pip安装Scrapy:
```
pip install scrapy
```
2. **创建项目**:
使用命令行进入你想放置项目的目录,然后运行:
```
scrapy startproject qidian_spider
```
这会创建一个新的Scrapy项目。
3. **定义爬虫**:
在`qidian_spider/spiders`文件夹下创建一个新的Python文件,比如`tencent_news.py`。定义一个继承自`CrawlerSpider`的类,设置起始URL和解析规则:
```python
import scrapy
class TencentNewsSpider(scrapy.Spider):
name = "tencent_news"
start_urls = ['https://news.qq.com/']
def parse(self, response):
# 解析新闻列表
news_list = response.css('div.news-item') # 根据腾讯新闻页面结构选择CSS选择器
for item in news_list:
title = item.css('h2 a::text').get() # 提取标题
link = item.css('h2 a::attr(href)').get() # 提取链接
yield {
'title': title,
'link': link,
}
# 爬取下一页,如果存在分页
next_page = response.css('a.next::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
```
4. **配置settings.py**:
在项目根目录的`settings.py`文件里,添加Scrapy使用的下载器中间件和User-Agent等配置:
```python
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
}
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
```
5. **运行爬虫**:
最后,在命令行中运行爬虫:
```
scrapy crawl tencent_news
```
Scrapy将开始爬取并保存结果到指定的输出文件夹(默认为`items`)。
注意:实际抓取时需要遵守网站的Robots协议,并确保不会对目标服务器造成过大的负担。
阅读全文