当前位置:网站首页>半自动化爬虫-爬取一个网站的内容及回复
半自动化爬虫-爬取一个网站的内容及回复
2022-08-01 16:42:00 【爱学习的Amelia】
- 需求:爬取某个帖子的内容以及回复。
- 步骤:
- 首先到该页面存储好该页面的源代码。右击该页面,选择【查看该页面源代码】,将得到的页面中的文本全部复制到一个文本文档中。
- 将文件存储好之后,修改好需要得到的一些值的正则表达式,将文件路径改好,运行以下代码。
注意:正则表达式一定要根据需要获取数据的需要来进行编写。多个空格可以使用\\s+来匹配。
import re
import csv
with open('./data/半自动化爬虫-抗压背锅吧.txt','r',encoding='utf-8') as f:
source=f.read()
result_list=[]
username_list=re.findall('username="(.*?)"',source,re.S)
content_list=re.findall('class="d_post_content j_d_post_content " style="display:;">\\s+(.*?)<',source, re.S)
reply_time_list=re.findall('class="tail-info">(2022.*?)<',source, re.S)
for i in range(len(username_list)):
result={
'username': username_list[i],
'content': content_list[i],
'reply_time': reply_time_list[i]}
result_list.append(result)
with open('半自动化爬虫-抗压背锅吧.csv','w',encoding='utf-8') as f:
writer=csv.DictWriter(f,fieldnames=['username','content','reply_time'])
writer.writeheader()
writer.writerows(result_list)
- 最终得到的结果是一个表格,由于有些部分是图片,所以提取不出来,这里只能提取出文字部分。
- 修改后的代码
import re
import csv
with open('./data/半自动化爬虫-抗压背锅吧.txt','r',encoding='utf-8') as f:
source=f.read()
# 获得包含每一层所有信息的大块文本
every_reply=re.findall('class="l_post l_post_bright j_l_post clearfix "(.*?)p_props_tail props_appraise_wrap',source, re.S)
# 从每一个大文本快里面提取出各个楼层的发帖人姓名,发帖时间和发帖内容
for each in every_reply:
result={
}
result['username'] = re.findall('username="(.*?)"',source,re.S)[0]
result['content'] = re.findall('class="d_post_content j_d_post_content " style="display:;">\\s+(.*?)<',source, re.S)
result['reply_time'] = re.findall('class="tail-info">(2022.*?)<',source, re.S)
with open('半自动化爬虫-抗压背锅吧1.csv','w',encoding='utf-8') as f:
writer=csv.DictWriter(f,fieldnames=['username','content','reply_time'])
writer.writeheader()
writer.writerows(result_list)
边栏推荐
- Winform message prompt box helper class
- Description of common operations and help projects about DevExpress in C#
- 05 doris 集群搭建
- Complete knapsack problem to find the number of combinations and permutations
- 金仓数据库 KDTS 迁移工具使用指南(2. 简介)
- C语言:表达式求值详解
- The site is not found after the website is filed. You have not bound this domain name or IP to the corresponding site! The configuration file does not take effect!
- C#Excel帮助类
- DOM series of touch screen events
- 【paper】Cam2BEV论文浅析
猜你喜欢
随机推荐
Go 单元测试
02 es cluster construction
Winform的UI帮助类——部分组件会使用到DevExpress组件
怎么安装汉化包(svn中文语言包安装)
Isometric graph neural networks shine in drug discovery
在码云拉取代码后,调整了seata版本1.5.2。出现如下异常。是因为数据库表缺少字段导致的吗?
DOM series of touch screen events
C#中关于DevExpress的常用操作和帮助类项目工程内容说明
06 redis cluster structures
【建议收藏】技术面必考题:多线程、多进程
14年测试人最近的面试经历,值得借鉴√
DateTime Helper Class for C#
The site is not found after the website is filed. You have not bound this domain name or IP to the corresponding site! The configuration file does not take effect!
90后的焦虑,被菜市场治好了
如何防止重复下单?
ESP8266-Arduino编程实例-74HC595位移寄存驱动
11 一发布就发布一系列系列
Daily Yuxian Big Defeat
11 Publish a series as soon as it is released
C# CSV format file helper class









