python爬虫之selenium库,浏览器访问搜索页面并提取信息,及隐藏浏览器运行

这篇具有很好参考价值的文章主要介绍了python爬虫之selenium库,浏览器访问搜索页面并提取信息,及隐藏浏览器运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 selenium简介

如果链接简单,爬虫可以通过链接用requests库提取页面信息,如爬取豆瓣top250影片信息,链接简单易懂。参考:爬取豆瓣top250影片信息

但如果遇到一些搜索之类的,基于js动态加载的网页,以上就不适合,如爬虫b站,搜索“爬虫”页面,第一页链接如下,第二页又是很长没规律的链接。很难用requests库提取页面。

https://search.bilibili.com/all?keyword=%E7%88%AC%E8%99%AB&from_source=webtop_search&spm_id_from=333.1007&search_source=5

针对以上情况,我们可以通过浏览器直接访问每个页面,然后提取页面。当然是让爬虫自己打开浏览器,输入内容访问,然后提取页面元素。这个过程就要用到 selenium 库。

selenium其实它就是一个自动化测试工具,支持各种主流的浏览器。遇到python,selenium 就变成了爬虫利器。

二、安装selenium配置环境变量

1、安装

pip install selenium

下载浏览器驱动,我用的是 Chrome 浏览器,所以下载Chrome驱动即可,当然你可以下载其他浏览器驱动。下载链接:ChromeDriver,找到和自己浏览器版本一致或者最接近的。

2、配置环境变量

下载解压后,配置环境变量。

解压,然后创建一个存放浏览器驱动的目录,如: D:\Python\Driver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver)丢到该目录下,我这里是chromedriver。

我的电脑–>属性–>系统设置–>高级–>环境变量–>系统变量–>Path,将“D:\Python\Driver”目录添加到Path的值中。比如:Path字段;D:\Python\Driver

关于环境变量不生效的问题:
1:尝试将浏览器驱动,直接放在python安装目录试试
2:配置环境变量后,重启电脑生效(我就是重启才生效)

三、打开浏览器并自动搜索

1、浏览器自动访问

代码,打开浏览器,并访问。

#导入 web 驱动模块
from selenium import webdriver
#创建了一个 Chrome 驱动
driver = webdriver.Chrome()
#驱动访问网页
driver.get("https://www.bilibili.com/")
#代码完成后,关闭浏览器
#driver.quit()

以上,执行代码自动打开浏览器
python selenium隐藏,python,python,爬虫,selenium,开发语言,linux

2、输入关键字并搜索

分析代码,可以看到,搜索框和按钮键的class元素值为 nav-search-input 和 nav-search-btn
python selenium隐藏,python,python,爬虫,selenium,开发语言,linux
找到元素后,用find_element方法定位找到此元素,定位有多种方式。

id定位:find_element_by_id()
name定位:find_element_by_name()
class定位:find_element_by_class_name()
link定位:find_element_by_link_text()
partial link定位:find_element_by_partial_link_text()
tag定位:find_element_by_tag_name()
xpath定位:find_element_by_xpath()
css定位:find_element_by_css_selector()

以上也可以用 driver.find_elements(By.ID, 'xxx') 的方式,对应值。

ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"

我这里用class值定位即可。

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.bilibili.com/")

#找到元素值
input = driver.find_element(By.CLASS_NAME,'nav-search-input')
button = driver.find_element(By.CLASS_NAME,'nav-search-btn')

#输入关键词
input.send_keys('爬虫')
#点击按钮
button.click()

注:以上如果报错提示没有By这个类型,需要导入包from selenium.webdriver.common.by import By

执行效果:
python selenium隐藏,python,python,爬虫,selenium,开发语言,linux

以上基本的搜索动作就完成了。

四、切换窗口提取网页信息

有网页了,可以用以前学的BeautifulSoup库提取页面代码元素了。

1、切换窗口

由于搜索页面是重新打开了一个页面,所以还需要在代码种切换,否则默认的都是第一个页面。

window_handles:获取页面句柄,返回值的为列表list。
switch_to.window:切换页面。

#获取所有页面句柄
windows = drive.window_handles
#切换页面为最后一个句柄,也是最后一个页面
drive.switch_to.window(windows[-1])
#print(windows)

以上得到的print(windows)句柄值,值为:

['CDwindow-EED0C1AE55C6A49DE55D69130254EC0F', 'CDwindow-D04BF7FFBEA89EFB93A990733008FD92']

2、获取页面源代码提取元素

切换页面后,用 page_source 获取页面源代码。

获取源代码后,就可以提取元素了,分别找到对应的class值即可。这里提取值有,视频名称,up主,播放量,时长,链接,日期。
python selenium隐藏,python,python,爬虫,selenium,开发语言,linux
最后代码为:

import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup


driver = webdriver.Chrome()
driver.get("https://www.bilibili.com/")


input = driver.find_element(By.CLASS_NAME,'nav-search-input')
button = driver.find_element(By.CLASS_NAME,'nav-search-btn')

input.send_keys('爬虫')
button.click()

windows = driver.window_handles
#print(windows)
driver.switch_to.window(windows[-1])
#等待5秒
time.sleep(5)
#获取源代码
html=driver.page_source

soup = BeautifulSoup(html,'lxml')
list = soup.find(class_='video-list row').find_all(class_="bili-video-card")

for item in list:
    #print(item)
    video_name = item.find(class_='bili-video-card__info--tit').text
    video_up = item.find(class_='bili-video-card__info--author').string
    video_date = item.find(class_='bili-video-card__info--date').string
    video_play = item.find(class_='bili-video-card__stats--item').text
    video_times = item.find(class_='bili-video-card__stats__duration').string
    video_link = item.find('a')['href'].replace('//','')
    print(video_name,video_up,video_play,video_times,video_link,video_date)
driver.quit()

执行结果为:

【爬虫1000集】目前B站最完整的爬虫教程,包含所有干货内容!这还没人看,我不更了! python大讲堂呀 24.629:14:25 www.bilibili.com/video/BV1bL4y1V7q1  · 4-25
2020年Python爬虫全套课程(学完可做项目) 路飞学城IT 150.843:30:57 www.bilibili.com/video/BV1Yh411o7Sz  · 2020-7-9
Python超强爬虫8天速成(完整版)爬取各种网站数据实战案例 Python网红Alex 51.620:39:05 www.bilibili.com/video/BV1ha4y1H7sx  · 2020-12-7
Python爬虫实战教程:批量爬取某网站图片 python学习者 80.5万 09:31:34 www.bilibili.com/video/BV1qJ411S7F6  · 2019-11-13
【附源码】全网最新的Python爬虫教程+实战项目案例,超适合小白练手的实战项目!(最新录制) Python王子秦老师 3.641:15 www.bilibili.com/video/BV1gd4y1i75v  · 10-8
Python课程天花板,Python入门+Python爬虫+Python数据分析5天项目实操/Python基础.Python教程 IT私塾 400.820:24:40 www.bilibili.com/video/BV12E411A7ZQ  · 2020-3-20
尚硅谷Python爬虫教程小白零基础速通(含python基础+爬虫案例) 尚硅谷 55.822:19:04 www.bilibili.com/video/BV1Db4y1m7Ho  · 2021-9-1
2022年Python爬虫小白到大神-网络爬虫+反爬虫(爬取各种网站数据)完整版包含20个项目案例,学完可自己爬取! Python人生苦短 6.114:40:56 www.bilibili.com/video/BV1rv4y1K7yV  · 5-4
Python超强爬虫5天速成(完整版)爬取各种网站数据实战案例 Python网红Alex 7300 18:53:17 www.bilibili.com/video/BV1BD4y1k7Po  · 10-9
【Python爬虫】清华大学20小时讲完的Python爬虫项目实战,全程干货无废话!建议收藏~ H顾兮儿 424 55:46:15 www.bilibili.com/video/BV1QN4y1A7oc  · 10-10
【2022最新】32个Python实战项目,练完即可就业,从入门到进阶,基础到框架,你想要的全都有,建议码住,允许白嫖!实战_项目_练手_小白_爬虫_编程_科技 张妹儿丫 113 40:44:18 www.bilibili.com/video/BV1PR4y1R7Xc  · 13小时前
写爬虫真的会坐牢吗? 知安局 60.512:06 www.bilibili.com/video/BV1KK4y1s7iK  · 2021-1-22
【全套34课时】2022最新完整版Python爬虫入门教程+实战项目案例,网络爬虫教程,零基础小白可学,学完可做项目兼职 Python精选教程 811 19:43:13 www.bilibili.com/video/BV1D8411x7Kx  · 10-10
3小时搞定 Python爬虫项目(爬取数据+数据整理+数据可视化) Python牛牛牛 6.629:32:59 www.bilibili.com/video/BV1hS4y1b7EJ  · 5-14
2021年最新Python爬虫教程+实战项目案例(最新录制) 路飞学城IT 6814:40:22 www.bilibili.com/video/BV1i54y1h75W  · 2021-3-5
【Python爬虫教程】花9888买的Python爬虫全套教程2021完整版现分享给大家!(已更新项目)——附赠课程与资料 小猿Python的主页 49.240:10:11 www.bilibili.com/video/BV1ZT4y1d7JM  · 2021-10-8
月薪1w的程序员 爬淘宝被判3年 写爬虫别碰这3条! 麦叔编程 20.1万 07:56 www.bilibili.com/video/BV1ih411a7PK  · 2021-6-14
Python爬虫开发实战从入门到精通大神崔庆才零基础视频52讲全 T博士云课堂 1.912:15:35 www.bilibili.com/video/BV1pf4y1H72c  · 2021-8-29
卧槽!原来Python爬虫可以这么玩?学完这10个练手案例,说明你才是真的入门了!!! 图灵python 7764 39:20 www.bilibili.com/video/BV1Jd4y1i7cH  · 10-9
3小时搞定 Python爬虫项目(爬取数据+数据整理+数据可视化) 路飞IT学城 5.5万 02:16:47 www.bilibili.com/video/BV1Ry4y1V7PE  · 2021-8-18
【爬虫篇】《极客Python之效率革命》 鱼C-小甲鱼 18.4万 01:47:55 www.bilibili.com/video/BV1wp411o7dz  · 2018-5-20
黑马程序员Python爬虫基础,快速入门Scrapy爬虫框架 黑马程序员 27.9万 04:17:09 www.bilibili.com/video/BV1jx411b7E3  · 2017-8-22
爬虫一小时,完事一分钟【第二弹】 苦瓜不可以 9.7万 05:18 www.bilibili.com/video/BV1Hr4y1w71G  · 2020-11-10
【十大案例 源码完整】后悔没早学Python爬虫,省时又省力⚡凭实力摸鱼丨全网图片、视频、数据...一键获取! 彭有才Python 1.1万 02:52:35 www.bilibili.com/video/BV14T411P7TD  · 10-8
Python爬虫编程基础7天速成(2022全新合集)Python入门+数据分析,0基础小白的入门级别教科书! 图灵学院教程 4.751:00:54 www.bilibili.com/video/BV1Fa411q75C  · 4-11
【爬虫1000集】目前B站最完整的爬虫教程,包含所有干货内容!这还没人看,我不更了! Python万能胶 14.714:40:56 www.bilibili.com/video/BV1qB4y1D77o  · 6-4
2022最新Python爬虫教程小白零基础速通(涵盖所有核心知识)立刻收藏! 图灵学院教程 2.617:38:51 www.bilibili.com/video/BV133411F7Cp  · 7-20
【python爬虫1000集】目前B站最完整的爬虫教程,包含所有干货内容!这还没人看,我不更了! 数据分析女王 73 14:40:56 www.bilibili.com/video/BV11N4y1A7cj  · 14小时前
【敢称全站第一】B站最强的Python爬虫进阶教程!自学必看,帮你少走99.9%的弯路~学不会你找我(爬虫JS逆向/逆向算法/逆向混淆/APP逆向/爬虫实战) 彭有才Python 2.3万 07:49:30 www.bilibili.com/video/BV1sG411n7Zf  · 7-18
2022自学爬虫,这一套就够了,别再乱学其他。 眨塑炊俺未沼臻 3.215:45:05 www.bilibili.com/video/BV1JP4y1u72J  · 3-18
Python爬虫全套教程,手把手教学 ,学完即可接单!!! Python善善 2.1万 04:10:56 www.bilibili.com/video/BV13e4y197vg  · 7-22
终于拿到了!(完整版)Python超强爬虫7天速成爬取各种网站数据 【python3.8爬虫基础+实战】 编程界-小蜗牛 3.223:57:57 www.bilibili.com/video/BV1rL411G7ep  · 2021-10-20
代码总是学完就忘记?100个爬虫实战项目!让你沉迷学习丨学以致用丨下一个Python大神就是你! python基础入门 8.471:15:41 www.bilibili.com/video/BV1SA4y1976A  · 4-14
(正版独家)Python教程巅峰之作,听觉上的享受(Python入门,Python爬虫,数据分析) IT私塾 22.231:25:34 www.bilibili.com/video/BV1yY4y1w7r8  · 8-5
Python爬虫实战教程:爬虫爬取某APP批量图片,脸红。 天美不会建模啊 3.539:07 www.bilibili.com/video/BV18v411q76u  · 2020-7-22
2022自学爬虫全套,学完可接项目(无私分享) 小北不熬夜啊啊 3.813:43:02 www.bilibili.com/video/BV1iu411C79S  · 4-16
Python爬虫从基础到精通,企业级讲解,集集干货,手把手带项目案例实战 图灵Python何老师 2.545:20:00 www.bilibili.com/video/BV1Yi4y1S7Pi  · 4-8
一单最少50块,学完爬虫就能实现,2021年最新python爬虫教程,从入门到实践,通俗易懂(完结) 左上角的猫 2.214:23:31 www.bilibili.com/video/BV1Pg411V768  · 2021-9-1
【Python教程】从入门到精通Python网络爬虫,核心技术、框架与项目实战,适合入门学习(小白定制版) 图灵学院教程 2.939:08:57 www.bilibili.com/video/BV1R34y1h7jx  · 5-16
【Python爬虫教程】爬虫写得好,牢饭吃的饱!Python 爬虫零基础入门到实战系列!(附课件源码资料) 人工智能与Python 11.727:51:01 www.bilibili.com/video/BV1Hb4y167c9  · 2021-7-20
10天学完Python爬虫全套教程,现在分享给大家(B站最新) Python_子木 12.224:57:21 www.bilibili.com/video/BV16f4y197D6  · 2020-8-11
【最强攻略】用魔法打败魔法,Python爬虫轻松通关羊了个羊!!! 咩咩数据分析大全 1.619:41:57 www.bilibili.com/video/BV17D4y1i7nX  · 9-20

这样单个页面的所有视频信息提取完成了。

五、判断网页是否加载完成

以上代码种,切换页面后,有一个等待5秒的代码。

time.sleep(5)

如果不加这行,有时候获取不到完整的信息而报错,因为代码元素没有加载完成,代码就执行完了,从而获取不到元素值而报错,所以必须加一个等待时间。报错如下:

Traceback (most recent call last):
  File "D:\Python\test_selenium.py", line 42, in <module>
    video_name = item.find(class_='bili-video-card__info--tit').text
AttributeError: 'NoneType' object has no attribute 'text'

time.sleep(5),如果临时调试,也可以用,但是在实际环境,尽量少用,因为实际环境网络差异,可能5秒也加载不出,而报错。所以需要灵活点的方式,有三种等待方法。

1、强制等待

sleep(x) x单位为s,sleep等待的是元素 。

不管你浏览器是否加载完了,程序都得等待,时间一到,继续执行下面的代码,作为调试很有用。

隐性等待和显性等待可以同时用。

注意:等待的最长时间取两者之中的大者

2、隐性等待

隐性等待的是页面,implicitly_wait(x) x单位为s。

一旦设置,这个隐式等待会在WebDriver对象实例的整个生命周期起作用,它不针对某一个元素,是全局元素等待,即在定位元素时,需要等待页面全部元素加载完成,才会执行下一个语句。

如果超出了设置时间的则抛出异常。

缺点:当页面某些js无法加载,但是想找的元素已经出来了,它还是会继续等待,直到页面加载完成(浏览器标签左上角圈圈不再转),才会执行下一句。某些情况下会影响脚本执行速度

3、显性等待

WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)

需要通过from selenium.webdriver.support.wait import WebDriverWait导入模块

  • driver:浏览器驱动
  • timeout:最长超时时间,默认以秒为单位
  • poll_frequency:检测的间隔步长,默认为0.5s
  • ignored_exceptions:超时后的抛出的异常信息,默认抛出NoSuchElementExeception异常。

配合该类的until()和until_not()方法
程序每隔poll_frequency秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException。

WebDriverWait与expected_conditions结合使用,示例:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

wait = WebDriverWait(driver,10,0.5)
element =wait.until(EC.presence_of_element_located((By.ID,"kw"),message="")
# 注意,如果省略message=“”,则By.ID外面是两层()

expected_conditions类提供的预期条件判断的方法:

以下两个条件类验证title,验证传入的参数title是否等于或包含于driver.title
title_is
title_contains

以下两个条件验证元素是否出现,传入的参数都是元组类型的locator,如(By.ID, ‘kw’)
顾名思义,一个只要一个符合条件的元素加载出来就通过;另一个必须所有符合条件的元素都加载出来才行
presence_of_element_located
presence_of_all_elements_located

以下两个条件判断某段文本是否出现在某元素中,一个判断元素的text,一个判断元素的value
text_to_be_present_in_element
text_to_be_present_in_element_value

以下条件判断frame是否可切入,可传入locator元组或者直接传入定位方式:id、name、index或WebElement
frame_to_be_available_and_switch_to_it

以下条件判断是否有alert出现
alert_is_present

以下条件判断元素是否可点击,传入locator
element_to_be_clickable

以下四个条件判断元素是否被选中,第一个条件传入WebElement对象,第二个传入locator元组
第三个传入WebElement对象以及状态,相等返回True,否则返回False
第四个传入locator以及状态,相等返回True,否则返回False
element_to_be_selected
element_located_to_be_selected
element_selection_state_to_be
element_located_selection_state_to_be

最后一个条件判断一个元素是否仍在DOM中,传入WebElement对象,可以判断页面是否刷新了
staleness_of

4、更改代码等待方式

3个地方等待,输入关键词,点击按钮,还有切换页面。

输入搜索框,并确定。

wait=WebDriverWait(driver,10)
#等待定位元素值,并返回元素值
input = wait.until(EC.presence_of_element_located((By.CLASS_NAME,'nav-search-input')))
#等待定位元素值,并等待是否可点击
button = wait.until(EC.element_to_be_clickable((By.CLASS_NAME,'nav-search-btn')))

调整页面等待,By.CLASS_NAME定位一个class值,并不能很准确,所以这里用By.CSS_SELECTOR定位。

对CSS_SELECTOR规则不熟的,直接查看源代码复制即可,当然也不一定非要最底层的元素值,我这里到div.video.i_wrapper.search-all-list即可。

python selenium隐藏,python,python,爬虫,selenium,开发语言,linux

wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#i_cecream > div > div:nth-child(2) > div.search-content > div > div > div.video.i_wrapper.search-all-list')))

最终代码为:

import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://www.bilibili.com/")

wait=WebDriverWait(driver,10)

#input = driver.find_element(By.CLASS_NAME,'nav-search-input')
#button = driver.find_element(By.CLASS_NAME,'nav-search-btn')
input = wait.until(EC.presence_of_element_located((By.CLASS_NAME,'nav-search-input')))
button = wait.until(EC.element_to_be_clickable((By.CLASS_NAME,'nav-search-btn')))

input.send_keys('爬虫')
button.click()

windows = driver.window_handles
driver.switch_to.window(windows[-1])
#time.sleep(5)

wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#i_cecream > div > div:nth-child(2) > div.search-content > div > div > div.video.i_wrapper.search-all-list')))

html=driver.page_source

soup = BeautifulSoup(html,'lxml')
list = soup.find(class_='video-list row').find_all(class_="bili-video-card")

for item in list:
    #print(item)
    video_name = item.find(class_='bili-video-card__info--tit').text
    video_up = item.find(class_='bili-video-card__info--author').string
    video_date = item.find(class_='bili-video-card__info--date').string
    video_play = item.find(class_='bili-video-card__stats--item').text
    video_times = item.find(class_='bili-video-card__stats__duration').string
    video_link = item.find('a')['href'].replace('//','')
    print(video_name,video_up,video_play,video_times,video_link,video_date+'\n')
driver.quit()

六、隐藏浏览器无界面运行

如果长时间运行,不可能一直打开浏览器,这时候就需要用无UI的浏览器,或者隐藏浏览器无界面运行。

方法一:PhantomJS浏览器

PhantomJS一个基于webkit内核的无头浏览器,即没有UI界面,即它就是一个浏览器,只是其内的点击、翻页等人为相关操作需要程序设计实现。

注:最新版selenium(4.x.x)已经放弃PhantomJS,会报错AttributeError: module ‘selenium.webdriver‘ has no attribute ‘PhantomJS‘

如需要用这种浏览器,需要卸载最新的selenium,安装3.8.0版本或以下的。

pip uninstall selenium
pip install selenium==3.8.0

phantomjs下载地址:https://phantomjs.org/download.html,和安装chrome驱动一致,解压,配置环境变量即可。

安装完成后,在代码种将webdriver.Chrome()改成webdriver.PhantomJS()即可。

#driver = webdriver.Chrome()
driver = webdriver.PhantomJS()

方法二:配置options无头模式

通过配置options的headless属性。无头模式有可能被检测,容易被发现。

headless属性来配置ChromeDriver以使用Selenium在无头模式下启动google-chrome浏览器。然后将参数传入webdriver.Chrome即可。

option = webdriver.ChromeOptions()
option.add_argument('--headless') # 设置option

driver = webdriver.Chrome(options=option)

方法三:在虚拟显示器上工作

推荐使用这种在服务器上执行,这种方式,推荐是在Linux服务器中进行。因为windows容易报错,而且windows不支持某些包。

如报错:ModuleNotFoundError: No module named ‘fcntl’,原因是fcntl包并不支持在window上面运行。

1:Linux安装chrome和下载chromedriver驱动

Linux安装chrome

#下载64位
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

#安装
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get -f install

安装完成后,查看chrome版本

ubuntu@ubuntu:~$ google-chrome --version 
Google Chrome 106.0.5249.119 

Linux下载chromedriver驱动,根据chrome版本下载在官网相应驱动版本。

#下载
wget https://chromedriver.storage.googleapis.com/106.0.5249.61/chromedriver_linux64.zip
#解压
unzip chromedriver_linux64.zip
#复制到/usr/bin/
sudo cp chromedriver /usr/bin/

2:虚拟显示器执行

使用虚拟桌面前,服务器需要安装xvfb支持虚拟桌面

sudo apt install xvfb

安装包pyvirtualdisplay

pip3 install pyvirtualdisplay

倒入包名,开启虚拟显示器。

from pyvirtualdisplay import Display

display = Display(visible=0,size=(800,600))
display.start()
....
....

display.stop()

或者用另一个包xvfbwrapper,也可以使用虚拟桌面。

安装包

pip3 install xvfbwrapper

倒入

from xvfbwrapper import Xvfb

display = Xvfb(width=1280, height=740)
display.start()
....
....
display.stop()

以上基本完成了。文章来源地址https://www.toymoban.com/news/detail-816951.html

到了这里,关于python爬虫之selenium库,浏览器访问搜索页面并提取信息,及隐藏浏览器运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【python爬虫】10.指挥浏览器自动工作(selenium)

    上一关,我们认识了cookies和session。 分别学习了它们的用法,以及区别。 还做了一个项目:带着小饼干登录,然后在博客中发表评论。 除了上一关所讲的登录问题,在爬虫过程中,我们还可能会遇到各种各样棘手的问题—— 有的网站登录很复杂,验证码难以破解,比如大名

    2024年02月10日
    浏览(61)
  • 【python爬虫】设计自己的爬虫 4. 封装模拟浏览器 Selenium

    有些自动化工具可以获取浏览器当前呈现的页面的源代码,可以通过这种方式来进行爬取 一般常用的的有Selenium, playwright, pyppeteer,考虑到他们的使用有许多相同之处,因此考虑把他们封装到一套api中 先看基类 Selenium是一个自动化测试工具,利用它可以驱动浏览器完成特定

    2024年02月03日
    浏览(63)
  • python爬虫教程:selenium常用API用法和浏览器控制

    selenium api selenium 新版本( 4.8.2 )很多函数,包括元素定位、很多 API 方法均发生变化,本文记录以 selenium4.8.2 为准。 webdriver 常用 API 方法 描述 get(String url) 访问目标url地址,打开网页 current_url 获取当前页面url地址 title 获取页面标题 page_source 获取页面源代码 close() 关闭浏览器当

    2024年02月05日
    浏览(54)
  • 『python爬虫』24. selenium之无头浏览器-后台静默运行(保姆级图文)

    欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 一般性的selenium会打开浏览器页面,展示图形化页面给我们看,我们都应该知道命令行式的程序肯定比这种渲染图形化界面的程序快速高效。为了一定程度上缓解selenium慢的问题,我们可以采

    2024年02月07日
    浏览(123)
  • Python小姿势 - # Python网络爬虫之如何通过selenium模拟浏览器登录微博

    Python网络爬虫之如何通过selenium模拟浏览器登录微博 微博登录接口很混乱,需要我们通过selenium来模拟浏览器登录。 首先我们需要安装selenium,通过pip安装: ``` pip install selenium ``` 然后我们需要下载一个浏览器驱动,推荐使用Chrome,下载地址:http://chromedriver.storage.googleapis.c

    2024年02月03日
    浏览(62)
  • 记录Selenium Python访问浏览器时部分内容无法获取的解决方法

    部分内容无法显示: 出现这种情况可能是浏览器对爬虫进行拦截,可以为webdriver添加浏览器设置。 添加浏览器设置后成功显示文本内容: 完整测试代码:

    2024年02月07日
    浏览(50)
  • 已解决Python.selenium爬虫必备设置永久禁止谷歌浏览器自动升级(亲测有效)

    问题描述:selenium框架自动化操作浏览器的时候,需要安装浏览器驱动 WebDriver ,而 WebDriver 驱动需要对应浏览器的版本才运行。但是我们常用的谷歌浏览器是有自动更新的,就会经常导致 WebDriver 版本和谷歌浏览器版本对应不上,运行代码就会出现如下报错信息。 每次去下载

    2024年02月10日
    浏览(61)
  • python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息

    接着上一篇的笔记,Scrapy爬取普通无反爬、静态页面的网页时可以顺利爬取我们要的信息。但是大部分情况下我们要的数据所在的网页它是动态加载出来的(ajax请求后传回前端页面渲染、js调用function等)。这种情况下需要使用selenium进行模拟人工操作浏览器行为,实现自动化

    2024年02月04日
    浏览(77)
  • 爬虫&搜索引擎&浏览器

    搜索引擎和浏览器是两个不同的概念,它们在互联网使用过程中扮演着不同的角色。 浏览器 是一种用来访问互联网并查看网页的软件应用程序。用户通过浏览器可以输入网址、点击链接、搜索信息、观看视频等。常见的浏览器包括 Chrome、Safari、Firefox、Edge 等。浏览器充当了

    2024年02月04日
    浏览(58)
  • 爬虫-华为云空间备忘录导出到docx-selenium控制浏览器行为-python数据处理

    老的荣耀手机属于华为云系统,家里人换了新荣耀手机属于荣耀云系统无法通过云空间将备忘录转移到新手机,不想让他们一个一个搞,于是整了一晚上想办法爬取下来。从网页抓取下来,然后存到docx文档中(包括文字和图片,别的形式的内容请举一反三) 多行图片多行文

    2024年02月19日
    浏览(77)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包