返利网站怎么做,手机网页前端开发,单页网站怎么做外链,做3d在哪个网站上接单比较好简介 Selenium是一个自动化测试框架#xff0c;可以通过编程语言控制浏览器进行各种操作。在Python中#xff0c;可以使用Selenium实现爬虫。 首先#xff0c;我们需要需要安装Selenium库。可以使用pip命令安装#xff1a;
pip install selenium要使用的话我们还需…简介 Selenium是一个自动化测试框架可以通过编程语言控制浏览器进行各种操作。在Python中可以使用Selenium实现爬虫。 首先我们需要需要安装Selenium库。可以使用pip命令安装
pip install selenium要使用的话我们还需要下载对应浏览器的驱动程序。Selenium支持多种浏览器比如Chrome、Firefox等。 谷歌驱动地址http://chromedriver.storage.googleapis.com/index.html
还有这个Chrome for Testing availability 这个真的是给我折磨掺了我一开始发现我谷歌浏览器版本太高了然后一开始的网站没有对应的版本然后我就整卸载了我的google然后花了好久去找了一个低版本的因为我的谷歌一直添加了很多的插件所以我就登录了一下我的谷歌账号来同步一下结果谷歌自动给我更新到了最新版我心态崩了然后我抱着侥幸的姿态去试了一下selenium结果发现驱动不匹配然后我又花了好久再找到上面的第二个链接有高版本的驱动我真的哭了┭┮﹏┭┮ 这个地址最好是使用一些魔法来访问国内好像访问不到我不用魔法的话直接到反诈中心了。。。。
下面是一个示例代码展示了如何使用Selenium爬取网页内容
from selenium import webdriver# 创建浏览器对象
driver webdriver.Chrome(/path/to/chromedriver)# 访问网页
driver.get(http://www.example.com)# 打印网页标题
print(driver.title)# 关闭浏览器
driver.quit()上面的示例代码使用了Chrome浏览器和Chrome驱动程序。要将路径/path/to/chromedriver修改为你自己的驱动程序路径。 通过Selenium你可以模拟浏览器行为比如点击按钮、填写表单等。当然你也可以获取网页的源码进一步解析和提取数据。 需要注意的是Selenium是一个相对比较重量级的库适用于对JavaScript等动态内容较多的网页进行爬取。对于静态网页我们一般使用requests进行爬取效率更高。 为什么使用selenium呢 模拟浏览器功能自动执行网页中的js代码实现动态加载 这里大家如果报错各种奇奇怪怪的建议使用selenium的3.3.1版本我无论是python3.1还是3.7使用这个版本都不报错而使用其他版本全部报错。。。。。。。。我裂开 基本使用
# 1导入selenium
from selenium import webdriver# 2创建浏览器操作对象
# path是驱动文件的路径
path chromedriver.exebrowser webdriver.Chrome(path)# 3访问网站
url https://www.jd.com/browser.get(url)# page_source获取网页源码
content browser.page_source
print(content)
这样的话就可以获得京东的秒杀页面的代码了 Selenium的元素定位 元素定位自动化要做的事情就是模拟鼠标和键盘来操作这些元素例如点击和输入等。在操作这些元素之前首先是要找到他们 WebDriver 提供很多定位元素的方法。 示例代码如下
# 1导入selenium
from selenium import webdriver# 2创建浏览器操作对象
# path是驱动文件的路径
path chromedriver.exebrowser webdriver.Chrome(path)# 3访问网站
url https://www.baidu.combrowser.get(url)# 元素定位:
# 根据id寻找到对象
button browser.find_element_by_id(su)
print(button)# 根据标签属性的值来获取对象
button browser.find_element_by_name(wd)
print(button)# 根据xpath语句来获取对象
button browser.find_elements_by_xpath(//input[idsu])
print(button)# 根据标签名来获取对象
button browser.find_elements_by_tag_name(input)
print(button)# 使用bs4的语法来获取对象
button browser.find_elements_by_css_selector(#su)
print(button)# 获取链接也就是a标签
button browser.find_element_by_link_text(视频)
print(button) Selenium的访问元素信息 # 1导入selenium
from selenium import webdriver# 2创建浏览器操作对象
# path是驱动文件的路径
path chromedriver.exebrowser webdriver.Chrome(path)# 3访问网站
url http://www.baidu.combrowser.get(url)input browser.find_element_by_id(su)
# 获取元素属性
print(input.get_attribute(class))# 获取标签名
print(input.tag_name)# 获取元素文本,这个是获取这里的内容/
a browser.find_element_by_link_text(新闻)
print(a.text) Selenium交互 直接上代码下述的代码可以实现整个页面的互相调用。什么意思呢就是可以直接通过程序先输入一个 ‘ 章若楠 ’ 然后滑到最下面然后再点击下一页然后再往下滑然后再回到前一页再去后一页。
# 1导入selenium
from selenium import webdriver
import time# 创建浏览器对象
path chromedriver.exe
browser webdriver.Chrome(path)# url
url https://www.baidu.com
browser.get(url)time.sleep(2)# 获取文本框的对象
input browser.find_element_by_id(kw)# 在文本框中输入章若楠
input.send_keys(章若楠)time.sleep(2)# 获取百度一下的按钮
button browser.find_element_by_id(su)
# 点击按钮
button.click()time.sleep(2)# 滑到底部
js_bottom document.documentElement.scrollTop100000
browser.execute_script(js_bottom)time.sleep(2)# 获取下一页的按钮
next browser.find_element_by_xpath(//a[classn])
# 点击下一页
next.click()time.sleep(2)browser.execute_script(js_bottom)time.sleep(2)
# 回到上一页
browser.back()time.sleep(2)browser.execute_script(js_bottom)time.sleep(2)
# 下一页
browser.forward()time.sleep(3)# 退出
browser.quit() phantomjs # phantomjs 的基本使用
from selenium import webdriver
import timepath phantomjs.exebrowser webdriver.PhantomJS(path)url https://www.baidu.combrowser.get(url)browser.save_screenshot(baidu.png)time.sleep(2)input browser.find_element_by_id(kw)
input.send_keys(李一桐)time.sleep(2)
browser.save_screenshot(李一桐.jpg)Chrome handless
到这里我就裂开了 需要Python3.6以上的我现在还用的3.1爆炸了我要┭┮﹏┭┮
...... 重新从这里开始写文章已经是两天之后了没错我完美的预判到了重新下载python将会导致的一系列版本不兼容问题我哭了我累了但是好在我搞定了┭┮﹏┭┮ 配置
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionschrome_options Options()
chrome_options.add_argument(--headless)
chrome_options.add_argument(--disable-gpu)# path是你自己的Chrome浏览器的文件路径
# 这里也是我们唯一需要修改的地方
path rC:\Program Files\Google\Chrome\Application\chrome.exe
chrome_options.binary_location pathbrowser webdriver.Chrome(chrome_optionschrome_options)上面的代码除了path几乎不用修改
url https://www.baidu.combrowser.get(url)browser.save_screenshot(baidu.png)
可以再加上这几行浅浅使用一下
可以使用方法封装一下然后调用
# 封装的handless
from selenium import webdriver
from selenium.webdriver.chrome.options import Options封装一下def share_browser():chrome_options Options()chrome_options.add_argument(--headless)chrome_options.add_argument(--disable-gpu)# path是你自己的Chrome浏览器的文件路径# 这里也是我们唯一需要修改的地方path rC:\Program Files\Google\Chrome\Application\chrome.exechrome_options.binary_location pathbrowser webdriver.Chrome(chrome_optionschrome_options)return browserbrowser share_browser()
url https://www.jd.com
browser.get(url)
browser.save_screenshot(jd.jpg)总结
这一章真的不难但是我真的很烦
更新完python真的多了好多事好多版本真的不兼容哭了哭了┭┮﹏┭┮