Selenium抓取百度首页TOP6新闻标题链接

2024-01-06 07:10

本文主要是介绍Selenium抓取百度首页TOP6新闻标题链接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意点:

1. 安装chromedriver

在淘宝镜像上下载一个和自己Google浏览器版本一样的Chromedriver, 推荐放在 chrome.exe 同一目录下

2.提取标签中的属性内容

    -- .get_attribute('标签属性')

3.提取标签中的text内容

    -- text

4.使用 unquote() 对URL进行解码

    -- link = unquote(link)

from selenium import webdriver
import time
from urllib.parse import  unquote# 计算机中chromedriver.exe的绝对位置
# "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
driver = webdriver.Chrome("C:\chromedriver.exe")
# 请求网站
driver.get("https://www.baidu.com")
# 最大化窗口
driver.maximize_window()
# 获取当前访问的url
url = driver.current_url
print('现在的网址是:', url)
# 显示网页源码
html = driver.page_source
# 将源码保存以便观察
with open('html.html','w', encoding='utf-8') as f:f.write(html)
# 获取cookie
# cookie = driver.get_cookies()
# cookie = {i['name']:i['value'] for i in cookie}
# print('获取到的cookie:\n', cookie)
time.sleep(5)
# 用selenium自带的定位功能定位信息
url = driver.find_elements_by_xpath('//a[@class="title-content c-link c-font-medium c-line-clamp1"]')
# 创建个空字典准备存放信息
item = {}
# 遍历获取到的信息进行清洗
for i in url:item_news = {}# element返回的是一个对象,不能直接在xpath中使用.text方法,要在结尾使用number = i.find_element_by_xpath('.//span').textnews = i.find_element_by_xpath('.//span[@class="title-content-title"]').text# 同理,获取属性标签的时候不能直接//href,要用.get_attribute('href')方法link = i.get_attribute('href')# url解码item_news[news] = unquote(link)item[int(number)] = item_news
# 将字典排序
item_list = sorted(item.items())
# 输出结果
for i in item_list:print('热度排名:', i[0], end='\t')print(list(i[1].keys())[0])print(list(i[1].values())[0])
# print('首页新闻', text)
time.sleep(3)

这篇关于Selenium抓取百度首页TOP6新闻标题链接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/575583

相关文章

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

每日一练7:简写单词(含链接)

1.链接 简写单词_牛客题霸_牛客网 2.题目 3.代码1(错误经验) #include <iostream>#include <string>using namespace std;int main() {string s;string ret;int count = 0;while(cin >> s)for(auto a : s){if(count == 0){if( a <=

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

短链接算法原理

平时我们在上网的时候,印象最深刻的有一次是短链接的服务。例如:平时在微信上看一个网页的时候,如果我们选择在浏览器打开的时候,会看到很长的URL,我们分享的时候,会看到一个很短URL,这就是本次所说的短链接的应用之一。 长链接示例:https://mp.weixin.qq.com/s?__biz=MzAxNzMwOTQ0NA==&mid=2653355437&idx=1&sn=5901826ea63

Vue2电商项目(二) Home模块的开发;(还需要补充js节流和防抖的回顾链接)

文章目录 一、Home模块拆分1. 三级联动组件TypeNav2. 其余组件 二、发送请求的准备工作1. axios的二次封装2. 统一管理接口API----跨域3. nprogress进度条 三、 vuex模块开发四、TypeNav三级联动组件开发1. 动态展示三级联动数据2. 三级联动 动态背景(1)、方式一:CSS样式(2)、方式二:JS 3. 控制二三级数据隐藏与显示--绑定styl

Imageview在百度地图中实现点击事件

1.首先第一步,需要声明的全局有关类的引用 private BMapManager mBMapMan; private MapView mMapView; private MapController mMapController; private RadioGroup radiogroup; private RadioButton normalview; private RadioBu

编译和链接那点事下

http://www.0xffffff.org/?p=357 上回书我们说到了链接以前,今天我们来研究最后的链接问题。         链接这个话题延伸之后完全可以跑到九霄云外去,为了避免本文牵扯到过多的话题导致言之泛泛,我们先设定本文涉及的范围。我们今天讨论只链接进行的大致步骤及其规则、静态链接库与动态链接库的创建和使用这两大块的问题。至于可执行文件的加载、可执行文件的运行时

编译和链接那点事上

http://www.0xffffff.org/?p=323  有位学弟想让我说说编译和链接的简单过程,我觉得几句话简单说的话也没什么意思,索性写篇博文稍微详细的解释一下吧。其实详细的流程在经典的《Linkers and Loaders》和《深入理解计算机系统》中均有描述,也有国产的诸如《程序员的自我修养——链接、装载与库》等大牛著作。不过,我想大家恐怕很难有足够的时间去研读这些厚如