python+selenium操作chrome浏览器抓取网页解决方案

以下操作均是在ubuntu系统下运行

from selenium import webdriver
from scrapy.selector import Selector

#操作chrome浏览器抓取淘宝

driver = webdriver.Chrome()
driver.get(‘淘宝链接‘)
print(driver.page_source)
t_selector = Selector(text=driver.page_source)
tm_price = t_selector.xpath(‘//*[@id="J_StrPriceModBox"]/dd/span/text()‘).extract_first()
print(tm_price)
driver.quit()

#操作谷歌浏览器登录知户

browser = webdriver.Chrome()
browser.get("https://www.zhihu.com/signin?next=%2Fexplore")
browser.find_element_by_xpath(‘//div[@class="SignFlow-accountInput Input-wrapper"]/input[@name="username"]‘).send_keys("18262031725")
browser.find_element_by_xpath(‘//div[@class="Input-wrapper"]/input[@name="password"]‘).send_keys("....")
browser.find_element_by_xpath(‘//div[@class="Login-options"]/button[@type="submit"]‘).click()

#操作浏览器登录微薄,並且下拉

browser = webdriver.Chrome()
browser.get("https://weibo.com/")
browser.implicitly_wait(10)
browser.find_element_by_xpath(‘//input[@id="loginname"]‘).send_keys(‘18262031725‘)
browser.find_element_by_xpath(‘//div[@class="input_wrap"]/input[@type="password"]‘).send_keys(‘。。。。‘)
browser.find_element_by_xpath(‘//div[@class="info_list login_btn"]/a‘).click()
import time
time.sleep(5)
browser.execute_script("window.scrollTo(0,document.body.scrollHeight);var lenofPage=document.body.scrollHeight;return lenofPage")

#設置不加载图片

chrome_opt = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images":2} # 不加载图片
chrome_opt.add_experimental_option("prefs",prefs)
browser = webdriver.Chrome(chrome_options=chrome_opt)
browser.get("https://weibo.com/")

#phantomjs,无界面浏览器,多进程情况下phantomjs性能下降非常严重,不推荐用

driver = webdriver.PhantomJS()
driver.get(‘https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.1.1bb93598Z5K5Sz&id=45696640046&skuId=3361138965307&user_id=728443962&cat_id=2&is_b=1&rn=7fd2566c963598402926dd52a6776c8c‘)
print(driver.page_source)
t_selector = Selector(text=driver.page_source)
tm_price = t_selector.xpath(‘//*[@id="J_StrPriceModBox"]/dd/span/text()‘).extract_first()
print(tm_price)
driver.quit()

#通过PyVirtualDisplay可以实现无界面,需要安装xvfb

sudo apt-get install xvfb
pip install xvfbwrapper

from pyvirtualdisplay import Display
display = Display(visible=0,size=(800,600))
display.start()
browser = webdriver.Chrome()
browser.get(‘https://weibo.com/‘)
print(browser.page_source)

#推荐Headless Chrome指在headless模式下运行谷歌浏览器,实现无界面

opt = webdriver.ChromeOptions()
opt.set_headless()
opt.add_argument(‘--disable-gpu‘)
browser = webdriver.Chrome(options=opt)
browser.get("https://weibo.com/")
print(browser.page_source)
browser.close()

原文地址:https://www.cnblogs.com/yoyowin/p/12208292.html

时间: 2024-08-15 07:48:03

python+selenium操作chrome浏览器抓取网页解决方案的相关文章

【python爬虫】利用selenium和Chrome浏览器进行自动化网页搜索与浏览

功能简介:利用利用selenium和Chrome浏览器,让其自动打开百度页面,并设置为每页显示50条,接着在百度的搜索框中输入selenium,进行查询.然后再打开的页面中选中“Selenium - 开源中国社区”,并打开页面 知识简介: selenium的作用: 1).最初用于网站自动化测试,近几年,用于获取精确的网站快照. 2).可以直接运行在浏览器上,让浏览器自动加载页面,获取需要的数据,还可以页面截屏,或者判断网站上某些动作是否发生. 项目步骤: 1.利用google的Chrome浏览器

Python+Selenium练习篇之1-摘取网页上全部邮箱

前面已经介绍了Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是入门了.接下来,我计划写第二个系列:练习篇,通过一些练习,了解和掌握一些Selenium常用的接口或者方法. 练习场景:在某一个网页上有些字段是我们感兴趣的,我们希望摘取出来,进行其他操作.但是这些字段可能在一个网页的不同地方.例如,我们需要在关于百度页面-联系我们,摘取全部的邮箱. 思路拆分: 1. 首先,需要得到当前页面的source内容,就像,打开一个页

Python3.5+selenium操作Chrome浏览器

1.安装selenium 命令提示符下输入: pip install selenium 2.下载chromedriver 点击下载 3.将解压后的chromedriver.exe放到chrome浏览器的安装目录下. 4.实例 from selenium import webdriver import os #引入chromedriver.exe chromedriver = "C:/Users/Administrator/AppData/Local/Google/Chrome/Applicati

python selenium 操作chrome

1.下载chromedriver.exe 入在chrome 浏览器目录下 from selenium import webdriverimport os chromedriver = "C:\Users\AppData\Local\Google\Chrome\Application\chromedriver.exe" os.environ["webdriver.chrome.driver"] = chromedriver driver =  webdriver.Ch

Selenium 操作chrome 浏览器

Step1: 下载chromedriver. 下载路径: http://chromedriver.storage.googleapis.com/index.html 选择一个合适的下载即可.我下载的是2.20版本的chromedriver_win32.zip ,解压之后得到chromedriver.exe . Step2: 放置chromedriver.exe 在跟项目包平行的地方新建一个包,比如”lib",然后将 chromedriver.exe拷贝到lib下. Step3: 添加 webdr

python 处理抓取网页乱码

python 处理抓取网页乱码问题一招鲜 相信用python的人一定在抓取网页时,被编码问题弄晕过一阵 前几天写了一个测试网页的小脚本,并查找是否包含指定的信息. 在html = urllib2.open(url).read()  时,打印到控制台始终出现乱码. 一般的解决办法就是html.decode('utf-8').encode('gb2312'),不过这个即使用了,也没能解决我的问题 这里有两个问题,第一个你要知道网页的编码格式是utf-8     第二你得确定你的系统是gb2312的,

Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) (转)

Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) 最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法. 一.用Python抓取网页 基本方法: [python] view plaincopyprint? import urllib2,urllib url = 'http://www.baidu.com' req 

python抓取网页

一 不需要登录的 import urllib2 content = urllib2.urlopen('http://XXXX').read() 二 使用代理 import urllib2 proxy_support = urllib2.ProxyHandler({'http':'http://XX.XX.XX.XX:XXXX'}) opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) urllib2.install_o

使用selenium模拟浏览器抓取淘宝信息

通过Selenium模拟浏览器抓取淘宝商品美食信息,并存储到MongoDB数据库中. from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdri