半自动化爬虫:在百度贴吧上保存网页,通过python爬取相关信息

liftword2周前 (04-28)技术文章12

1、需求背景:

在百度贴吧上选取一页帖子,点击右键查看源代码,将源代码保存为txt文件,通过python实现从该页面中抓取帖子的标题,作者,时间等信息,将结果保存为excel表格

2、关键技术实现:

python、正则表达式、txt文件读取、excel文件写入

3、代码实现:

import re
import csv

resultList = []
# 读取已经保存的文件内容
with open("baidutieba.txt", 'r', encoding="UTF-8") as f:
    source = f.read()

#以下通过正则表达式进行相关的匹配,获取标题,作者,时间等信息
#原始文件是:<a rel="noopener" href="/p/7864139938" title="女高专一发展" target="_blank" class="j_th_tit ">女高专一发展</a>
titleRE = r'<a rel="noopener" href="/p/\d*" title="(.*?)" target='
titleList = re.findall(titleRE,source,re.S)
#原始文件是:title="主题作者: 五条永远滴神"
authorRE = 'title="主题作者: (.*?)"'
authorList = re.findall(authorRE,source,re.S)
#原始文件是:<span class="pull-right is_show_create_time" title="创建时间">18:48</span>
timeRE = '" title="创建时间">(.*?)</span>'
timeList = re.findall(timeRE,source,re.S)

#将如上的结果添加到列表里,便于后续写入到CSV格式的文档里
for i in range(len(titleList)):
    result = {
        "title": titleList[i],
        "author": authorList[i],
        "time": timeList[i]
    }
    resultList.append(result)

#将文件写入到excel表格里
with open('baidutieba.csv', 'w', encoding='utf-8-sig') as f:
    writer = csv.DictWriter(f, fieldnames=['title','author','time'])
    writer.writeheader()
    writer.writerows(resultList)

4、运行代码,查看输出的 baidutieba.csv 文件,发现虽然能写入正确的内容,但是出现了换行。如下:

5、解决输出多加了空行的方法:

将源代码中:

with open('baidutieba.csv', 'w', encoding='utf-8-sig') as f:

修改为:

with open('baidutieba.csv', 'w', encoding='utf-8-sig', newline='') as f:

再次运行,出现的页面如图,空行问题已经解决:

相关文章

十几行Python代码轻松实现txt转xls,方便快捷

前天看到有人说目前自己有很多txt 文件,领导要转成xls文件,问用python怎么实现。其实完成这个需求方法有很多,因为具体的txt格式不清楚,当然如果是有明确分隔符的会更好处理些,可以直接把txt...

告别依赖混乱!Python项目一键生成requirements.txt!

“为什么我的代码在本地运行正常,别人却装不上依赖?” 这是无数Python新手遭遇的噩梦。本文将揭秘一个让项目依赖管理效率提升10倍的神器——pipreqs,手把手教你打造专业级开发环境!一、依赖管理...

自动创建 Python 的 requirements.txt 文件

技术背景在 Python 开发中,requirements.txt 文件用于记录项目所依赖的第三方库及其版本,方便在不同环境中部署项目。然而,当从 GitHub 下载 Python 源代码时,有时会缺...

Python画圣诞树,这波操作让我女友非常开心

文章目录1.方块圣诞树2.线条圣诞树3.豪华圣诞树这篇文章主要介绍了使用Python画了一棵圣诞树的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友...

如何用python的requests来下载网页内容保存到txt

如何用python的requests来下载网页内容保存到txtimport requests # 定义目标网页和保存路径 url = "http://www.5a8.com" fil...