Python爬虫|使用Selenium轻松爬取网页数据

这篇具有很好参考价值的文章主要介绍了Python爬虫|使用Selenium轻松爬取网页数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 什么是selenium?

Python爬虫|使用Selenium轻松爬取网页数据,python,selenium,开发语言

Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作浏览器一样。支持的浏览器包括IE,Firefox,Safari,Chrome等。

Selenium可以驱动浏览器自动执行自定义好的逻辑代码,也就是可以通过代码完全模拟成人类使用浏览器自动访问目标站点并操作,那我们也可以拿它来做爬虫。

Selenium本质上是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等...进而拿到网页渲染之后的结果,可支持多种浏览器。

在日常开发中我们经常使用selenium来完成自动化操作、数据爬取等任务。

2. 当作为数据爬虫时什么情况下使用Selenium?

(1)使用selenium的优点:

就是可以帮我们避开一系列复杂的通信流程,例如在我们之前学习的requests模块,那么requests模块在模拟请求的时候是不是需要把素有的通信流程都分析完成后才能通过请求,然后返回响应。假如目标站点有一系列复杂的通信流程,例如的登录时的滑动验证等...那么你使用requests模块的时候是不是就特别麻烦了。不过你也不需要担心,因为网站的反爬策略越高,那么用户的体验效果就越差,所以网站都需要在用户的淫威之下降低安全策略。

再看一点requests请求库能不能执行js?是不是不能呀!那么如果你的网站需要发送ajax请求,异步获取数据渲染到页面上,是不是就需要使用js发送请求了。那浏览器的特点是什么?是不是可以直接访问目标站点,然后获取对方的数据,从而渲染到页面上。那这些就是使用selenium的好处! 

(2)使用selenium的缺点:

使用selenium本质上是驱动浏览器对目标站点发送请求,那浏览器在访问目标站点的时候,是不是都需要把静态资源都加载完毕。html、css、js这些文件是不是都要等待它加载完成。是不是速度特别慢。那用它的坏处就是效率极低!所以我们一般用它来做登录验证。

(3)总结:

使用Selenium在爬取数据时既有有点也有缺点,因此需要根绝自己的需求明确是否选择和使用Selenium。 

3. 安装和使用selenium

selenium支持包括Chrome、Firefox、Safari、Opera、Edge等众多浏览器针对不同浏览器,需要安装不同的驱动器,本文以FireFox浏览器为例讲解。

(1)安装FireFox浏览器

直接下载和电脑对应版本的friefox浏览器

Firefox 火狐浏览器 - 全新、安全、快速 | 官方最新下载 下载由致力于互联网健康与隐私保护的非营利组织 Mozilla 全力开发的浏览器 — Firefox。Windows、Mac、Linux、Android、与 iOS 版皆可免费下载。https://www.firefox.com.cn/

(2)安装FireFox浏览器驱动geckodriver

geckodriver是由Mozilla基金会和Mozilla公司开发的许多应用程序中使用的Web浏览器引擎。geckodriver是Selenium中的测试和Firefox浏览器之间的链接。

Releases · mozilla/geckodriver · GitHubWebDriver for Firefox. Contribute to mozilla/geckodriver development by creating an account on GitHub.https://github.com/mozilla/geckodriver/releases下载对应版本的geckodriver,同时注意firefox浏览器版本。下载后,解压文件,将解压后的 geokodriver.exe 驱动器放到Python安装目录下

Python爬虫|使用Selenium轻松爬取网页数据,python,selenium,开发语言

(3)Python下载和安装selenium库

使用pip安装selenium时,可以设置pip国内镜像地址加快selenium包下载速度

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config list

Python爬虫|使用Selenium轻松爬取网页数据,python,selenium,开发语言

安装selenium 

pip install selenium

 验证是否安装成功

pip show selenium

Python爬虫|使用Selenium轻松爬取网页数据,python,selenium,开发语言

(4)在Python中使用selenium实现浏览器操作实例

# 浏览器自动化工具
from selenium import webdriver
from selenium.webdriver.common.by import By

# MySQL数据库链接工具
import pymysql
# 文件操作类
import os
# 时间类
from time import sleep

from docx import Document
import pypandoc

#链接MySQL
mysqlCon = pymysql.connect(
    host="127.0.0.1",
    port=3306,
    user="root",
    password="123456",
    database="toutiao"
)



while True:
    cursor = mysqlCon.cursor()
    # 执行 SQL 查询语句
    cursor.execute("select id,item_id,article_url,title from happy where state = 0 order by read_count asc limit 0,1")
    # 获取查询结果
    result = cursor.fetchall()

    sql = "update happy set state = 1 where id = %s"
    id = result[0][0]
    cursor.execute(sql,id)
    mysqlCon.commit()


    articleId = result[0][1]
    articleTitle = result[0][3]
    # articleId = "7279996073686123068"

    # 通过查询列表获取未发布的热门文章信息,根据获取的文章URL 打开URL链接地址
    # articleId = "7291869777788666407"
    # 创建一个浏览器实例
    browser = webdriver.Firefox()
    # # 获取请求地址
    browser.get("https://toutiao.com/group/"+articleId)

    sleep(30)

    # 根据元素名称获取元素内容
    textContainer = browser.find_element(By.CLASS_NAME,"syl-article-base")
    articleHtml = textContainer.get_attribute("innerHTML")

    # 根据解析的HTML内容,获取文章文本信息和图片信息,并将文本信息和图片保存到Word文档中
    # file = open("E:\\studyproject\\python\\toutiao\data\\"+articleId+"\\"+articleId+".html", "r",encoding='utf-8')
    os.mkdir("E:\\studyproject\\python\\toutiao\data\\happy\\"+articleId)

    output = pypandoc.convert_text(articleHtml, 'docx','html',outputfile="E:\\studyproject\\python\\toutiao\data\\happy\\"+articleId+"\\"+articleTitle+".docx")



    sleep(30)
    browser.quit()

今日头条文章做了反爬虫处理,因此无法直接通过requests请求直接获取文章详情信息,因此只能使用selenium。上述代码示例中我们首先从数据库中获取已经爬取到的热门文章id,根据文章id拼接出文章url地址,使用selenium来操作浏览器,根据拼接的url地址打开文章页面,获取到文章内容标签元素,获取页面内容,并将页面文章文本和图片内容保存到word文档中。

一分钟爬取一篇文章,非常低高效

Python爬虫|使用Selenium轻松爬取网页数据,python,selenium,开发语言

Python爬虫|使用Selenium轻松爬取网页数据,python,selenium,开发语言文章来源地址https://www.toymoban.com/news/detail-765096.html

到了这里,关于Python爬虫|使用Selenium轻松爬取网页数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫入门:使用selenium库,webdriver库模拟浏览器爬虫,模拟用户爬虫,爬取网站内文章数据,循环爬取网站全部数据。

    *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。 目录 准备工具: 思路: 具体操作: 调用需要的库: 启动浏览器驱动: 代码主体:  完整代码(解析注释): Python环境; 安装selenium库; Python编辑器; 待爬取的网站; 安装好的浏览器; 与浏览器版本相对应的

    2023年04月24日
    浏览(57)
  • Python爬虫——Selenium在获取网页数据方面的使用

    目录 一、Selenium (一)引入  (二)启动浏览器 二、操作 (一)点击 (二)输入 三、数据获取 四、特点 五、抓取拉钩实例 六、其他操作 (一)窗口切换 代码 (二)操作下拉列表/无头浏览器 代码         一个电影票房的网站里,响应数据是一串完全看不懂的字符串

    2024年02月07日
    浏览(51)
  • Python网页爬虫爬取起点小说——re解析网页数据

    !!注意:我们获取到的网页响应数据,可能会与网页源代码中呈现的格式不同。因为有些网页文件是用JavaScript加载的,浏览器会自动将其解析成html文档格式,而我们获取到的内容是JavaScript格式的文档。所以获取到响应数据之后先要查看内容是否与网页源码中的一致,不一

    2024年02月04日
    浏览(64)
  • Python 爬虫:如何用 BeautifulSoup 爬取网页数据

    在网络时代,数据是最宝贵的资源之一。而爬虫技术就是一种获取数据的重要手段。Python 作为一门高效、易学、易用的编程语言,自然成为了爬虫技术的首选语言之一。而 BeautifulSoup 则是 Python 中最常用的爬虫库之一,它能够帮助我们快速、简单地解析 HTML 和 XML 文档,从而

    2024年02月04日
    浏览(65)
  • Python实战:用Selenium爬取网页数据

    网络爬虫是Python编程中一个非常有用的技巧,它可以让您自动获取网页上的数据。在本文中,我们将介绍如何使用Selenium库来爬取网页数据,特别是那些需要模拟用户交互的动态网页。 Selenium是一个自动化测试工具,它可以模拟用户在浏览器中的操作,比如点击按钮、填写表

    2024年02月06日
    浏览(47)
  • Python爬虫:为什么你爬取不到网页数据

    前言: 之前小编写了一篇关于爬虫为什么爬取不到数据文章(文章链接为:https://liuze.blog.csdn.net/article/details/105965562),但是当时小编也是胡乱编写的,其实里面有很多问题的,现在小编重新发布一篇关于爬虫爬取不到数据文章,希望各位读者更加了解爬虫。 1. 最基础的爬虫

    2024年02月05日
    浏览(98)
  • Python使用Selenium Webdriver爬取网页所有内容

    有时候,我们在用urllib或者requests库抓取页面时,得到的html源代码和浏览器中看到的不一样。这将是我们面临的一个非常常见的问题。现在网页越来越多地采用Ajax、前端模块化工具来构建,整个网页可能都是由JavaScript渲染出来的,也就是说原始的HTML代码可能就是一个空壳,

    2023年04月08日
    浏览(48)
  • 【爬虫】5.5 Selenium 爬取Ajax网页数据

    目录   AJAX 简介 任务目标 创建Ajax网站 创建服务器程序 编写爬虫程序         AJAX(Asynchronous JavaScript And XML,异步 JavaScript 及 XML) Asynchronous 一种创建 交互式 、 快速动态 网页应用的网页开发技术 通过在后台与服务器进行少量数据交换,无需重新加载整个网页的情况下

    2024年02月10日
    浏览(44)
  • Python网络爬虫库:轻松提取网页数据的利器

          网络爬虫是一种自动化程序,它可以通过访问网页并提取所需的数据。Python是一种流行的编程语言,拥有许多强大的网络爬虫库。在本文中,我们将介绍几个常用的Python网络爬虫库以及它们的使用。 Requests库 Requests是一个简单而优雅的HTTP库,可以轻松地发送HTTP请求。

    2024年02月09日
    浏览(49)
  • Python网页爬虫爬取豆瓣Top250电影数据——Xpath数据解析

    1.1 查看原页面信息 首先打开豆瓣Top250电影页面,其网址是:https://movie.douban.com/top250。 可以发现,该页面展示的电影信息有中英文电影名、导演、主演、上映年份、国籍、电影类型、评分等。 下滑到页面底部,发现第一页有25部电影的数据,并且可以点击页码数实现页面跳转

    2024年02月05日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包