爬虫入门---半自动爬虫爬取贴吧

文章目录

  • 一、半自动爬虫
    • 1.半自动爬虫概念
    • 2.爬虫目标
    • 3.爬取的效果
    • 4.源代码
  • 总结

一、半自动爬虫

1.半自动爬虫概念

所谓半自动爬虫,顾名思义就是一半手动一半自动地进行爬虫,手动的部分是把网页的源代码复制下来,自动部分是通过正则表达式把其中有效信息提取出来。

2.爬虫目标

我所选取的爬虫目标是本校的贴吧,其中某研究生学长说有历年的题目可以免费分享,只要留下你的QQ。(我觉得这是想进行社会工程学的行为。)

3.爬取的效果

爬虫入门---半自动爬虫爬取贴吧_第1张图片

4.源代码

import  re
import  csv

with open('source.txt', 'r', encoding='UTF-8') as f:
    source = f.read()

result_list = []

#获取每一个模块
every_reply = re.findall('d_post_content_main">(.*?)icon_wrap  icon_wrap_theme1 d_pb_icons', source, re.S)

#从每一个模块提取出各个楼层的发帖人姓名、发帖内容和时间
for each in every_reply:
    result = {
     }
    result['username'] = re.findall('username="(.*?)"', each, re.S)[0]
    result['content'] = re.findall('j_d_post_content  clearfix" style="display:;">(.*?)<', each, re.S)[-1].replace('            ','')
    result['reply_time'] = re.findall('"date":"(2020.*?)"', each, re.S)[0]
    result_list.append(result)

with open('tieba.csv', 'w', encoding='UTF-8') as f:
    writer = csv.DictWriter(f, fieldnames=['username', 'content', 'reply_time'])
    writer.writeheader()
    writer.writerows(result_list)

总结

因为爬取的是一个静态文件,所以难度不大,只需掌握简单的正则表达式知识就可以做到。

你可能感兴趣的:(爬虫,python,正则表达式,爬虫)