用python中的scripy从交大新闻网主页新闻栏目(http://news.xjtu.edu.cn/zyxw.htm)爬取最新的100 条新闻的代码,并保存在news.txt文件中
时间: 2024-02-26 09:53:42 浏览: 142
东方财富新闻资讯内容Python爬虫代码
5星 · 资源好评率100%
好的,以下是使用 Scrapy 爬取交大新闻网主页最新100条新闻并保存在news.txt文件中的代码:
1. 首先,我们需要在命令行中通过以下命令创建一个新的 Scrapy 项目:
```
scrapy startproject news
```
这将在当前目录下创建一个名为 `news` 的 Scrapy 项目。
2. 然后,我们需要创建一个新的爬虫。在命令行中输入以下命令:
```
cd news
scrapy genspider xjtu_news news.xjtu.edu.cn
```
这将在 `news/spiders` 目录下创建一个名为 `xjtu_news.py` 的爬虫文件。
3. 打开 `xjtu_news.py` 文件,将以下代码复制粘贴到文件中:
```python
import scrapy
class XjtuNewsSpider(scrapy.Spider):
name = 'xjtu_news'
allowed_domains = ['news.xjtu.edu.cn']
start_urls = ['http://news.xjtu.edu.cn/zyxw.htm']
def parse(self, response):
news_items = response.xpath('//div[@class="l-list"]/div[@class="item"]')[:100]
for news_item in news_items:
news_title = news_item.xpath('.//a/text()').get().strip()
news_link = news_item.xpath('.//a/@href').get()
news_time = news_item.xpath('.//span/text()').get().strip()
yield {
'title': news_title,
'link': news_link,
'time': news_time
}
```
这个爬虫会发送一个 HTTP 请求到 `http://news.xjtu.edu.cn/zyxw.htm` 页面,并解析页面内容。它会找到新闻列表所在的 HTML 元素,并遍历其中的每一个新闻条目。对于每一条新闻,它会提取标题、链接和发布时间,并将它们存储在一个字典中,使用 `yield` 关键字将字典返回。
4. 接下来,我们需要在命令行中运行以下命令来运行爬虫并将结果保存到 `news.txt` 文件中:
```
scrapy crawl xjtu_news -o news.txt
```
这将运行我们刚刚创建的 `xjtu_news` 爬虫,并将结果保存到 `news.txt` 文件中。在运行之前,确保您已经在 `news` 目录下,并且已经安装了 Scrapy 库。
执行完命令后,将在当前目录下创建一个名为 `news.txt` 的文件,并在其中写入最新的100条新闻的标题、链接和发布时间。
阅读全文