目标:爬取微博文章搜索标题


步骤:

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:最后如罗代码有问题或需要优化的地方欢迎评论区讨论

爬取微博搜索关键字标题相关推荐

  1. Python爬取百度搜索的标题和真实URL的代码和详细解析

    网页爬取主要的是对网页内容进行分析,这是进行数据爬取的先决条件,因此博客主要对爬取思路进行下解析,自学的小伙伴们可以一起来学习,有什么不足也可以指出,都是在自学Ing,回归正题今天我们要来爬取百度搜索 ...

  2. 如何使用python简单的爬取微博搜索的内容

    UI界面输入关键词用python爬取微博内容 第一步:创建main.py文件,用来作为主类. 在main.py文件中进行以下操作. 一.程序入口,明白接下来进行的操作 1.加载UI界面. 2.爬取网页 ...

  3. 【网络爬虫】【java】微博爬虫(一):小试牛刀——网易微博爬虫(自定义关键字爬取微博数据)(附软件源码)...

    一.写在前面 (本专栏分为"java版微博爬虫"和"python版网络爬虫"两个项目,系列里所有文章将基于这两个项目讲解,项目完整源码已经整理到我的Github ...

  4. python根据关键字爬取微博_Python 超简单爬取微博热搜榜数据

    微博的热搜榜对于研究大众的流量有非常大的价值.今天的教程就来说说如何爬取微博的热搜榜.热搜榜的链接是: https://s.weibo.com/top/summary/ 用浏览器浏览,发现在不登录的情 ...

  5. python-基于selenium库爬取微博关键词搜索内容

    python-基于selenium爬取微博关键词搜索内容 用的是谷歌浏览器 需要下载chromedriver 暂时还少了登录步骤不能爬取第一页以外的内容 爬取内容(默认了40条(还没有做到翻页所以会重 ...

  6. HttpClient 实现爬取百度搜索结果(自动翻页)

    如果你对HttpClient还不是很了解,建议先移步我的另一篇博客HttpClient4.x之请求示例后再来看这篇博客.我们这里的项目采用maven搭建.在阅读前要对jdk和maven有一定的了解.另 ...

  7. 爬取新笔趣阁排行并保存到mysql_python+selenium爬取微博热搜存入Mysql的实现方法...

    最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站link 下面我们来分析怎么实现 使用的库 import requests from selenium.webdr ...

  8. Python爬取微博热搜榜,将数据存入数据库

    一直想学习用Python来进行数据的爬取,也一直想知道Python连接数据库的操作,今天刚好看到的这篇文章满足了这两个条件,我试着爬了下微博,并成功将数据添加到数据库中,颇为欢喜.作者写的很简单,有些 ...

  9. python爬取微博热搜显示到折线图_微博热搜榜前20信息数据爬取进行数据分析与可视化...

    一.设计方案 1.主题式网络爬虫名称:微博热搜榜前20信息数据爬取进行数据分析与可视化 2.爬取内容与数据特征分析:爬取微博热搜榜前20热搜事件.排名与热度,数据呈一定规律排序. 3.设计方案概述:思 ...

最新文章

  1. python 设置开机自动启动 .py 文件
  2. 1.3.2 java程序的运行机制和jvm
  3. Boost:BOOST_ASSERT扩展的用法测试程序
  4. 算法的封装与切换——策略模式
  5. mysql navicat 函数_Navicat for MySQL 函数高级属性讲解
  6. mysql timestamp 并发_MySQL 实现 EF Code First TimeStamp/RowVersion 并发控制
  7. 腾讯云服务器性能测试心得经验总结
  8. SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别
  9. js java用var_Java基础———JavaScript基础知识
  10. 抓包及分析包的常用命令
  11. opencv ORB角检测
  12. Answers To The Questions from GiGabyte
  13. 超市对账源码php_[源码和文档分享]基于Java的在线购物系统的设计与实现
  14. Typora免费版,不是破解版,是没有升级的老版本,用的还是比较舒服的
  15. 业务流程的设计 (附加案例)
  16. USB无线网卡共享台式机接入ADSL无线上网
  17. Base64解密算法、AES解密
  18. 摘录《事实》汉斯·罗斯林
  19. 切绳子【洛谷P1577】【二分】
  20. 工作三年后,我选择离开腾讯

热门文章

  1. (一)field ii发射接收信号处理,超声波声场计算
  2. 使用winhex查看FAT16格式结构
  3. MBR膜技术一般可以应用于哪些类型的污水处理项目中?
  4. summary of 马维尔
  5. web前端自动化测试(基于QT4W框架)
  6. org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped [from XXX]
  7. 关于新劳动法-违约金试用期
  8. RDL(C) Report Design Step by Step
  9. 0-1k/0-10k欧姆转换4-20ma电阻转模拟信号变送器
  10. VB种if语句的常见形式