我是靠谱客的博主 着急万宝路,最近开发中收集的这篇文章主要介绍python动态网页抓取实例_Python:利用 selenium 库抓取动态网页示例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

在抓取常规的静态网页时,我们直接请求对应的 url 就可以获取到完整的 HTML 页面,但是对于动态页面,网页显示的内容往往是通过 ajax 动态去生成的,所以如果是用 urllib.request 直接获取页面的 HTML 时,就获取不到我们所想用的内容,这时我们就可以利用 selenium 库就可以获得我们所需要的内容了。

需安装的三方库

BeautifulSoup4

selenium

lxml

示例代码

示例说明:获取德邦官网设立了网点的市区名称

import urllib.request

from bs4 import BeautifulSoup

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

chrome_options = Options()

chrome_options.add_argument("--headless") #设置该参数使在获取网页时不打开浏览器

driver = webdriver.Chrome(chrome_options=chrome_options, executable_path="./chromedriver")

driver.get("https://www.deppon.com/deptlist/")

html = driver.page_source

driver.close()

soup = BeautifulSoup(html, 'lxml')

items = soup.select('div[class~="listA_Z"] a')

for item in items:

print(item.string)

碰到的小问题

用 "pip install selenium" 安装 selenium 库时失败。可以利用下面的命令来安装"pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org selenium"。

在使用时 webdriver.Chrome()时出现的问题,在网上看到的文章用的是火狐浏览器,他们直接使用 webdriver.Firefox()就可以了,而我是用谷歌浏览器,我以为用谷歌浏览器和用火狐浏览器一样的,但是在运行时出错了,后来再网上找了一下,是要在 selenium 官网下载Chrom Driver,然后在使用 webdriver.chorme()函数时,需要传 executable_path 参数,该参数的值就是在 selenium 官网下载的 Chrome Driver.exe 文件所在的路径。示例中我是把chromedriver.exe放在根目录,所以代码里我用的是相对路径( executable_path="./chromedriver")。

推荐

Chrom/firefox 浏览器插件:Katalon Recorder,Katalon Recorder是一个前端自动化测试插件,它可以用来记录你在网页上的所有操作,最神奇的是它还可以把记录导出为各种代码,这其中就包含了Python2的代码。有时借用它,甚至可以不用去分析HTML的结构就可以轻松地让我们获取取得所需要的数据了,这对于那种HTML结构凌乱的网页还是很有帮助的。

最后

以上就是着急万宝路为你收集整理的python动态网页抓取实例_Python:利用 selenium 库抓取动态网页示例的全部内容,希望文章能够帮你解决python动态网页抓取实例_Python:利用 selenium 库抓取动态网页示例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部