Selenium + phantomJS 爬取动态网站
来源:互联网 发布:单片机外部存储器 编辑:程序博客网 时间:2024/06/05 05:46
受同学委托,帮忙爬新浪微博的微博和评论内容。
发现这是一个动态网站,我前端技术不行,搞不懂它的ajax接口,所以不能直接用requests包爬了。
后来了解到Selenium可以模拟浏览器(Firefox, phantomJS等)的点击,然后用Beautifulsoup解析HTML,Selenium是爬动态网站的神器!
phantomJS是一个没有界面的浏览器,用来爬虫最合适了。
把Selenium用到的一些接口总结一下吧。
常用的接口
以sina微博登录为例,
from selenium import webdriver from bs4 import BeautifulSoup import time browser = webdriver.PhantomJS() # 创建phantomJS浏览器对象 browser.get(“http://login.sina.com.cn”) # 访问网站 elem_user = browser.find_element_by_name("username”) # 定位到用户名元素 elem_user.send_keys(‘username’) # 输入用户名 elem_pwd = browser.find_element_by_name("password") elem_pwd.send_keys(‘password’) # 密码 elem_sub = browser.find_element_by_xpath("//input[@class='W_btn_a btn_34px']") # 定位到提交元素 elem_sub.click() # 点击登陆 time.sleep(10) # 等待10s current_url = browser.current_url # 当前页面的url print current_url browser.get(“http://other/page/of/sina”) # 跳转到你要爬取的页面 time.sleep(10) html = browser.page_source # 获得当前页面的html字符串 # 可以开始解析html,获得你要的数据了 html = BeautifulSoup(html, ‘lxml’) # 转换成BeautifulSoup对象,用于后续解析 …
如果用FireFox浏览器,会看到浏览器自己再动。
browser = webdriver.Firefox(executable_path=“path/to/geckodriver”)
文档
http://selenium-python.readthedocs.io/
阅读全文
0 0
- Selenium + phantomJS 爬取动态网站
- selenium+ phantomjs实现动态网页爬取
- selenium+ Phantomjs爬取动态网页
- 动态网页爬取例子(WebCollector+selenium+phantomjs)
- 基于Python,Selenium和PhantomJS实现动态页面爬取
- 基于Python3的phantomJs+Selenium动态网页爬取技术
- python+selenium+PhantomJS爬取网页动态加载内容
- Selenium+PhantomJS 爬取页面
- Selenium+PhantomJS爬取淘宝
- python +selenium+phantomjs 登录爬取新浪微博动态js页面
- [Python爬虫]Scrapy配合Selenium和PhantomJS爬取动态网页
- Scrapy+phantomjs爬取动态网页数据
- Scrapy+PhantomJS+Selenium动态爬虫
- Scrapy+PhantomJS+Selenium动态爬虫
- Scrapy+PhantomJS+Selenium动态爬虫
- 使用selenium动态爬取
- Node.js 动态网页爬取 PhantomJS 使用入门
- selenium+phantomjs+js动态网页截图
- 用Servlet实现简单的网站登录
- 浏览器调试匿名函数
- 使用Kotlin实现Android简单Demo,对比JAVA实现分析具体语法不同之处(一)
- c++实现洗牌
- Codeforce 52C---Circular RMQ 线段树
- Selenium + phantomJS 爬取动态网站
- 理解mysql 数据库覆盖索引
- Ubuntu下QNX SDP 6.6安装使用指南
- 设计模式(6)-适配器模式
- WUST 1927 信使(最短路之弗洛伊德算法)
- 关于Tomcat部署项目时部署两次问题的解决方案
- POJ 2135 Farm Tour(最小费用最大流模板题)
- Golang教程:(十八)接口
- 【Git】学习笔记之基本操作