爬取微博搜索关键字标题
目标:爬取微博文章搜索标题
步骤:
1.加载模块
import requests
from lxml import etree
from urllib import parse
from fake_useragent import UserAgent
2.设置爬虫参数
url
t = input('请输入你要搜索的关键词')a = parse.quote(t) # 文字转16进制for i in range(5):url = f'https://s.weibo.com/article?q={a}&Refer=weibo_article&page={i+1}' # 传入关键字已及页数
headers
self.headers = { # 设置headers'User-Agent': UserAgent().random,'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Accept-Language': 'zh-CN,zh;q=0.9','Accept-Encoding':'utf-8','Connection': 'keep-alive','Referer':'https://weibo.com','Cookie': # 自己微博的cookie,}
3.爬取数据并清洗
在网页标签中我们发现2标签在1标签的下面
而在网页源代码中却2标签不在1标签里面
得出结论后爬取2标签不选择爬取1标签
res = requests.get(self.url, headers=self.headers)
res.encoding = 'utf-8'
html1 = etree.HTML(res.text)
divs = html1.xpath('//div[@class="card s-pg16"]')# 筛选(清洗)数据
for div in divs:title = div[0].xpath('./h3/a//text()')print(''.join(title))
实例:
# 加载模块
import requests
from lxml import etree
from urllib import parse
from fake_useragent import UserAgentclass Sousuo():def __init__(self, url):# 设置爬虫参数self.url = url # 传入urlself.headers = { # 设置headers'User-Agent': UserAgent().random,'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Accept-Language': 'zh-CN,zh;q=0.9','Accept-Encoding':'utf-8','Connection': 'keep-alive','Referer':'https://weibo.com','Cookie': 'SINAGLOBAL=7001469864453.1045.1599482188978; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WhuU9lPQ0Fgs5Kd4-aFOhUN5JpX5KMhUgL.Fo-cS0.peheE1Kz2dJLoIp7LxKML1KBLBKnLxKqL1hnLBoMfSoM4eK50eo.E; ALF=1650592002; SSOLoginState=1619056006; SCF=AnSWVzmiooXmYQEoGwEa1yt7qRqEKW9IwAyUTw-NclrBp1YNJakky4ASQA68FnXZCMzS9dTWpwJoZhiQcXnOF5Y.; SUB=_2A25NhKXWDeRhGeNI7FsQ8C3Owj6IHXVu85AerDV8PUNbmtAKLWXfkW9NSDr9ToNhY_92f0-RfBdz6U3XDGQu4ICf; wvr=6; _s_tentry=login.sina.com.cn; UOR=gl.ali213.net,widget.weibo.com,www.baidu.com; Apache=8633304806103.497.1619056011059; ULV=1619056011084:8:2:1:8633304806103.497.1619056011059:1617346934054; webim_unReadCount=%7B%22time%22%3A1619056012603%2C%22dm_pub_total%22%3A2%2C%22chat_group_client%22%3A0%2C%22chat_group_notice%22%3A0%2C%22allcountNum%22%3A39%2C%22msgbox%22%3A0%7D; WBStorage=8daec78e6a891122|undefined',}def run(self):# 开始爬虫res = requests.get(self.url, headers=self.headers)res.encoding = 'utf-8'html1 = etree.HTML(res.text)divs = html1.xpath('//div[@class="card s-pg16"]')# 筛选(清洗)数据for div in divs:title = div[0].xpath('./h3/a//text()')print(''.join(title))def main():t = input('请输入你要搜索的关键词')a = parse.quote(t) # 文字转16进制for i in range(5):url = f'https://s.weibo.com/article?q={a}&Refer=weibo_article&page={i+1}' # 传入关键字已及页数s = Sousuo(url)s.run()if __name__ == '__main__':main()
ps:最后如罗代码有问题或需要优化的地方欢迎评论区讨论
爬取微博搜索关键字标题相关推荐
- Python爬取百度搜索的标题和真实URL的代码和详细解析
网页爬取主要的是对网页内容进行分析,这是进行数据爬取的先决条件,因此博客主要对爬取思路进行下解析,自学的小伙伴们可以一起来学习,有什么不足也可以指出,都是在自学Ing,回归正题今天我们要来爬取百度搜索 ...
- 如何使用python简单的爬取微博搜索的内容
UI界面输入关键词用python爬取微博内容 第一步:创建main.py文件,用来作为主类. 在main.py文件中进行以下操作. 一.程序入口,明白接下来进行的操作 1.加载UI界面. 2.爬取网页 ...
- 【网络爬虫】【java】微博爬虫(一):小试牛刀——网易微博爬虫(自定义关键字爬取微博数据)(附软件源码)...
一.写在前面 (本专栏分为"java版微博爬虫"和"python版网络爬虫"两个项目,系列里所有文章将基于这两个项目讲解,项目完整源码已经整理到我的Github ...
- python根据关键字爬取微博_Python 超简单爬取微博热搜榜数据
微博的热搜榜对于研究大众的流量有非常大的价值.今天的教程就来说说如何爬取微博的热搜榜.热搜榜的链接是: https://s.weibo.com/top/summary/ 用浏览器浏览,发现在不登录的情 ...
- python-基于selenium库爬取微博关键词搜索内容
python-基于selenium爬取微博关键词搜索内容 用的是谷歌浏览器 需要下载chromedriver 暂时还少了登录步骤不能爬取第一页以外的内容 爬取内容(默认了40条(还没有做到翻页所以会重 ...
- HttpClient 实现爬取百度搜索结果(自动翻页)
如果你对HttpClient还不是很了解,建议先移步我的另一篇博客HttpClient4.x之请求示例后再来看这篇博客.我们这里的项目采用maven搭建.在阅读前要对jdk和maven有一定的了解.另 ...
- 爬取新笔趣阁排行并保存到mysql_python+selenium爬取微博热搜存入Mysql的实现方法...
最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站link 下面我们来分析怎么实现 使用的库 import requests from selenium.webdr ...
- Python爬取微博热搜榜,将数据存入数据库
一直想学习用Python来进行数据的爬取,也一直想知道Python连接数据库的操作,今天刚好看到的这篇文章满足了这两个条件,我试着爬了下微博,并成功将数据添加到数据库中,颇为欢喜.作者写的很简单,有些 ...
- python爬取微博热搜显示到折线图_微博热搜榜前20信息数据爬取进行数据分析与可视化...
一.设计方案 1.主题式网络爬虫名称:微博热搜榜前20信息数据爬取进行数据分析与可视化 2.爬取内容与数据特征分析:爬取微博热搜榜前20热搜事件.排名与热度,数据呈一定规律排序. 3.设计方案概述:思 ...
最新文章
- python 设置开机自动启动 .py 文件
- 1.3.2 java程序的运行机制和jvm
- Boost:BOOST_ASSERT扩展的用法测试程序
- 算法的封装与切换——策略模式
- mysql navicat 函数_Navicat for MySQL 函数高级属性讲解
- mysql timestamp 并发_MySQL 实现 EF Code First TimeStamp/RowVersion 并发控制
- 腾讯云服务器性能测试心得经验总结
- SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别
- js java用var_Java基础———JavaScript基础知识
- 抓包及分析包的常用命令
- opencv ORB角检测
- Answers To The Questions from GiGabyte
- 超市对账源码php_[源码和文档分享]基于Java的在线购物系统的设计与实现
- Typora免费版,不是破解版,是没有升级的老版本,用的还是比较舒服的
- 业务流程的设计 (附加案例)
- USB无线网卡共享台式机接入ADSL无线上网
- Base64解密算法、AES解密
- 摘录《事实》汉斯·罗斯林
- 切绳子【洛谷P1577】【二分】
- 工作三年后,我选择离开腾讯
热门文章
- (一)field ii发射接收信号处理,超声波声场计算
- 使用winhex查看FAT16格式结构
- MBR膜技术一般可以应用于哪些类型的污水处理项目中?
- summary of 马维尔
- web前端自动化测试(基于QT4W框架)
- org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped [from XXX]
- 关于新劳动法-违约金试用期
- RDL(C) Report Design Step by Step
- 0-1k/0-10k欧姆转换4-20ma电阻转模拟信号变送器
- VB种if语句的常见形式