import requests from bs4 import BeautifulSoup def get_shui5_data(page): url = f'https://www.shui5.cn/article/BeiJingShiCaiShuiFaGui/pg{page}/' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36' } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') l_list = soup.find_all('div', class_='xwt2_a') data = [] for l in l_list: title = l.find('div',class_='title').get_text().strip() time = l.find('p',class_='p3').get_text().strip() data.append((title, time)) return data all_data = [] for i in range(1, 11): print(f'正在爬取第 {i} 页...') data = get_shui5_data(i) all_data.extend(data) with open('shui5_data.txt', 'w', encoding='utf-8') as f: for (title, time) in enumerate(all_data, start=1): f.write(f'{title} {time}\n') print('爬取完成,数据已写入shui5_data.txt文件')
时间: 2024-04-24 13:21:52 浏览: 143
这段代码是用 Python 爬取水五网站北京市财税法规栏目的文章标题和发布时间,并将数据以文本形式写入 shui5_data.txt 文件中。具体实现过程是:使用 requests 库发送 GET 请求获取网页内容,使用 BeautifulSoup 库解析 HTML,提取出所有 class 为 xwt2_a 的 div 标签,再从中提取出标题和时间,存入一个二元组中,最后将所有二元组写入文本文件中。
相关问题
用代码爬取https://www.shui5.cn/article/BeiJingShiCaiShuiFaGui/的10页标题时间并写入txt文档
好的,我将使用Python的requests和BeautifulSoup库来实现网页的爬取和信息的提取。请确保你已经安装了这两个库,如果没有,请先使用以下命令安装:
```
pip install requests
pip install beautifulsoup4
```
下面是代码实现:
```python
import requests
from bs4 import BeautifulSoup
# 定义要爬取的页数和url
page_num = 10
url_base = 'https://www.shui5.cn/article/BeiJingShiCaiShuiFaGui/'
# 打开文件
with open('title_time.txt', 'w', encoding='utf-8') as f:
# 循环爬取每一页
for page in range(page_num):
# 拼接当前页的url
url = url_base + 'index_' + str(page+1) + '.html'
# 发送请求
response = requests.get(url)
response.encoding = 'utf-8'
# 解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')
# 获取每篇文章的标题和时间
articles = soup.select('.list li')
for article in articles:
title = article.select_one('.title a').get_text().strip()
time = article.select_one('.time').get_text().strip()
# 将标题和时间写入文件
f.write(title + '\t' + time + '\n')
# 提示爬取完成
print('Done!')
```
这段代码会爬取https://www.shui5.cn/article/BeiJingShiCaiShuiFaGui/ 的前10页的标题和时间,并将其写入名为title_time.txt的文本文件中。你可以修改page_num来指定要爬取的页数,也可以修改url_base来爬取其他网页。
用requests和re爬取https://www.shui5.cn/article/BeiJingShiCaiShuiFaGui/的10页标题时间并写入txt文档
好的,下面是使用requests和re库来实现的代码:
```python
import requests
import re
# 定义要爬取的页数和url
page_num = 10
url_base = 'https://www.shui5.cn/article/BeiJingShiCaiShuiFaGui/'
# 打开文件
with open('title_time.txt', 'w', encoding='utf-8') as f:
# 循环爬取每一页
for page in range(page_num):
# 拼接当前页的url
url = url_base + 'index_' + str(page+1) + '.html'
# 发送请求
response = requests.get(url)
response.encoding = 'utf-8'
# 使用正则表达式提取每篇文章的标题和时间
pattern = r'<li>.*?<span class="time">(.*?)</span>.*?<a href=.*?>(.*?)</a>.*?</li>'
results = re.findall(pattern, response.text, re.S)
# 写入文件
for result in results:
title = result[1].strip()
time = result[0].strip()
f.write(title + '\t' + time + '\n')
# 提示爬取完成
print('Done!')
```
这段代码与之前的代码不同之处在于使用了正则表达式来提取标题和时间,而不是使用BeautifulSoup库。这里的正则表达式使用了re库中的findall函数来匹配多个结果,并使用re.S来匹配跨行的文本。其他部分与之前的代码相同。
阅读全文
相关推荐
















