python爬虫实际应用_如何使用python爬虫论坛?
除了之前跟大家讲述过的视频、音乐以及时事新闻,关于爬虫可以做的事情有很多很多,像论坛也是其中之一,应用最火的内容,之前给大家罗列的爬虫实际内容有很多,但是还是希望将每个实际内容都跟大家说一下。让大家在遇到这些问题时候,可以有个参考,因此,根据大家罗列的清单,给大家继续安排python怎么爬取论坛,一起来看下吧~
库:requests,re,selenium,time
具体步骤:
一、搜索贴吧
准备一个自己想要爬取的内容
二、显示贴吧首页的帖子
要提取发帖人的名字和帖子主题,选择用正则表达式来实现,具体代码如下:titles = re.findall('
authors = re.findall('title="主题作者: (.*?)"', res.text)
三、查看某一个帖子
通过观察网页源码,可以用正则表达式匹配到这部分回复,然后对于这些回复,也要进行处理后再显示出来。comment_list2 = re.findall('post_bubble_middle_inner">(.*?)
comment = comment_list2[num].replace('
', ' ').replace('
', ' ')
具体源码如下:import requests
import time
import re
from selenium import webdriver
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/"
"53.0.2785.89 Safari/537.36"
}
class TieBa:
def __init__(self, name, url):
self.name = name # 贴吧名
self.url = url # 贴吧首页的url
# 显示首页上的帖子作者和标题
def get_homepage(self):
print("\n\t\t\t\t\t\t{}吧".format(self.name))
res = requests.get(self.url, headers=headers)
titles = re.findall('
authors = re.findall('title="主题作者: (.*?)"', res.text)
for title, author in zip(titles, authors):
print(str(titles.index(title) + 1) + "--" + author + ":" + title[1])
print("\n****************************")
n = int(input("请输入您想要查看的帖子序号:"))
print("****************************\n")
self.get_page("http://tieba.baidu.com/p/" + titles[n - 1][0])
# 显示帖子的具体内容
def get_page(self, page_url):
res = requests.get(page_url, headers=headers)
author_list = re.findall('p_author_name j_user_card.*?>(.*?)<', res.text)
comment_list = re.findall('content clearfix">(.*?)
', res.text, re.DOTALL)
if len(comment_list) == 0:
comment_list = re.findall('d_post_content j_d_post_content ">(.*?)', res.text, re.DOTALL)
# 带回复框的单独考虑
comment_list2 = re.findall('post_bubble_middle_inner">(.*?)
num = 0
# 处理图片和表情,显示对应的链接
for author, comment in zip(author_list, comment_list):
print(author.strip(), end=" : ")
comment = comment.strip().replace('
', ' ')
if "
comment = comment_list2[num].replace('
', ' ').replace('
', ' ')
num += 1
if "src" in comment: # 处理图片信息
src_list = re.findall('src="(.*?)"', comment)
pattern_list = re.findall('()', comment)
for s, p in zip(src_list, pattern_list):
comment = comment.replace(p, ' ' + s)
if "href" in comment: # 处理表情信息
pattern_list = re.findall('()', comment)
for p in pattern_list:
comment = comment.replace(p, ' ').replace("", '')
print(comment)
while True:
x = int(input("\n输入1查看下一页,输入0回到首页,输入-1退出程序:"))
if x == -1:
exit()
if x == 0:
self.get_homepage()
if x == 1:
next_page = re.findall('下一页', res.text)
if len(next_page)>0:
self.get_page("http://tieba.baidu.com" + next_page[0])
else:
print("已经是最后一页了!")
# 利用selenium模拟浏览器查找贴吧
def search():
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get("https://tieba.baidu.com/")
name = input("请输入想要进入的贴吧名字:")
browser.find_element_by_xpath('//*[@id="wd1"]').send_keys(name)
browser.find_element_by_xpath('//*[@id="tb_header_search_form"]/span[1]/a').click()
url = browser.current_url
if "tieba.baidu.com/f?ie=utf-8" in url: # 搜索的贴吧存在
print("正在进入{}吧,请稍等...".format(name))
time.sleep(2)
t = TieBa(name, url)
t.get_homepage()
else:
print("没有找到{}吧\n".format(name))
main()
def main():
x = int(input("输入1搜索进入贴吧,输入-1退出程序:"))
if x == 1:
search()
else:
exit()
if __name__ == '__main__':
main()
好了,以上就是爬取论坛的内容了,如果大家遇到这种问题,可以来看下小编的这篇内容,很容易解决的哦~
python爬虫实际应用_如何使用python爬虫论坛?相关推荐
- python爬虫获取方法_小白学python爬虫:2.获得数据
在上一篇文章我我们已经完成了对网页的分析,包括了:在源码中数据的定位:获取方法(xpath).那么在获得数据之前我们考虑的则是如何获取源码. 接下来我们将学习如何从服务器获得源码. #写在前面&quo ...
- python urllib dns 缓存_新手用Python做一个网页爬虫
咱们好哈,最近博主在学习Python,学习时期也遇到一些问题,获得了一些经历,在此将自个的学习体系地整理下来,假如咱们有爱好学习爬虫的话,能够将这些文章作为参阅,也期待咱们总共同享学习经历. 首要py ...
- python博客访问量_史诗级干货-python爬虫之增加CSDN访问量
AI 人工智能 史诗级干货-python爬虫之增加CSDN访问量 史诗级干货-python爬虫之增加CSDN访问量 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法. ...
- python打开文件切片_收藏 | 从Python安装到语法基础,小白都能懂的爬虫教程!(附代码)...
来源:大数据 作者:罗攀 蒋仟 本文约5000字,建议阅读20分钟. 本文立足基础,讲解Python和PyCharm的安装,及Python最简单的语法基础和爬虫技术中所需的Python语法. 本文涉及 ...
- 从零开始学python网络爬虫读书笔记_从零开始学Python网络爬虫 中文pdf
资源名称:从零开始学Python网络爬虫 中文pdf 第1章 Python零基础语法入门 1 第2章 爬虫原理和网页构造 17 第3章 我的第一个爬虫程序 26 第4章 正则表达式 45 第5章 Lx ...
- python会计实证研究_实证研究者的爬虫工具选择
作为一个实证研究小青年??,有段时间因为研究的需要,要做定向爬虫.这是自己学习Python最初的缘由.那个时候爬虫的材料还不是太多,自己在网上找了一些文章和电子书来学习.边学边试,不久就完工了. 完工 ...
- python ip动态代理_给自己的爬虫做一个简单的动态代理池
使用代理服务器一直是爬虫防BAN最有效的手段,但网上的免费代理往往质量很低,大部分代理完全不能使用,剩下能用的代理很多也只有几分钟的寿命,没法直接用到爬虫项目中. 下面简单记录一下我用scrapy+r ...
- python大神教程_大神python教程415集全套,拿走不谢
大神的教程 由北京尚学堂高淇老师亲自录制,2019Python自学教程全新升级为<Python+数据分析+机器学习>能力逐级提升,打造技能更全面的全栈工程师. Python作为一种编程语言 ...
- python数据科学手册_小白入门Python数据科学
前言 本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据 ...
- python 宏处理库_常用的Python库,给大家分享一下!
Tkinter---- Python默认的图形界面接口. Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组.Tcl/Tk是 ...
最新文章
- VSCode设置合并行快捷键
- 从html中提取手机号码,C#从字符串中提取电话号码、手机号码
- Echarts实现隐藏x轴,y轴,刻度线,网格
- [CMake] message 打印变量值
- 相机视场角和焦距_相机参数一览表
- 2.从Paxos到Zookeeper分布式一致性原理与实践---一致性协议
- 管理新语:年龄经验并不能让一个医生律师厉害,而是他本来就厉害
- wxParse无法解析strong标签
- 如何编写自己的python包,并进行安装和发布
- 【机器学习原理】SVM支持向量机分类算法
- 近期每日学习与工作时间安排
- 一文分析 Android现状及发展前景
- 如何自己搭建钓鱼网站检测系统
- Oracle数据库之PL/SQL程序设计基础
- 千万PV是什么意思?
- P5030 长脖子鹿放置
- Linux 桌面虚拟化技术 KVM
- RT-Thread Nano入门学习笔记(1)
- 人手,人力,人才,人物
- Cesium中笛卡尔坐标系到底是什么鬼