python获取完整网页内容(即包括js动态加载的):selenium+phantomjs
2017-12-19 17:52
1271 查看
在上一篇文章(http://blog.csdn.net/Trisyp/article/details/78732630)中我们利用模拟打开浏览器的方法模拟点击网页中的加载更多来实现动态加载网页并获取网页内容。但是很不幸,有些网站的这部分内容是使用js动态加载的,我们用普通方法获取的时候,发现有些地方是空白的,所以没法获取Xpath,所以上篇文章方法也就失效了。
可能有些童鞋开始会认为是不是代码出错了,然后打印全部网页内容,发现想要的那部分内容确实没有,再用浏览器去访问网页,右键查看网页源代码发现这部分代码确实没有。我就是那个傻童鞋!!!
所以本篇文章就是希望能够解决这种问题,去抓取js动态加载的网页。首先想到的肯定是使用selenium来调用浏览器进行抓取,但是第一句就说明了,Xpath没法获取,所以就没法通过点击页面元素来实现了。这个时候看到了这篇文章(http://blog.csdn.net/yxwb1253587469/article/details/52233562),使用selenium+phantomjs来进行无界面抓取。
具体步骤如下:
1. 下载Phantomjs,下载地址:http://phantomjs.org/
2. 下完之后直接解压就OK了,然后selenium的安装用pip就行了
3. 写代码执行就完成了
完整代码如下:
可能有些童鞋开始会认为是不是代码出错了,然后打印全部网页内容,发现想要的那部分内容确实没有,再用浏览器去访问网页,右键查看网页源代码发现这部分代码确实没有。我就是那个傻童鞋!!!
所以本篇文章就是希望能够解决这种问题,去抓取js动态加载的网页。首先想到的肯定是使用selenium来调用浏览器进行抓取,但是第一句就说明了,Xpath没法获取,所以就没法通过点击页面元素来实现了。这个时候看到了这篇文章(http://blog.csdn.net/yxwb1253587469/article/details/52233562),使用selenium+phantomjs来进行无界面抓取。
具体步骤如下:
1. 下载Phantomjs,下载地址:http://phantomjs.org/
2. 下完之后直接解压就OK了,然后selenium的安装用pip就行了
3. 写代码执行就完成了
完整代码如下:
import requests from bs4 import BeautifulSoup import re from selenium import webdriver import time def getHTMLText(url): driver = webdriver.PhantomJS(executable_path='D:\\phantomjs-2.1.1-windows\\bin\\phantomjs') # phantomjs的绝对路径 time.sleep(2) driver.get(url) # 获取网页 time.sleep(2) return driver.page_source def fillUnivlist(html): soup = BeautifulSoup(html, 'html.parser') # 用HTML解析网址 tag = soup.find_all('div', attrs={'class': 'listInfo'}) print(str(tag[0])) return 0 def main(): url = 'http://sports.qq.com/articleList/rolls/' #要访问的网址 html = getHTMLText(url) #获取HTML fillUnivlist(html) if __name__ == '__main__': main()
相关文章推荐
- python+selenium+PhantomJS爬取网页动态加载内容
- Python爬虫学习——使用selenium和phantomjs爬取js动态加载的网页
- python+selenium+PhantomJS爬取网页动态加载内容
- Python使用Selenium和PhantomJS解析动态JS的网页
- Python3.x:Selenium+PhantomJS爬取带Ajax、Js的网页及获取JS返回值
- 使用Selenium+PhantomJS实现网页内容加载(包括网页后期Ajax出来的结果)
- Python PhatomJS 和Selenium动态加载页面 获取图片内容
- Python使用Selenium和PhantomJS解析动态JS的网页
- Python使用Selenium + PhantomJS抓取动态网页:今日头条
- Python+Selenium+PhantomJS下载JavaScript异步加载网页
- [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论
- Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
- 三种获取js加载的动态内容的方法
- Python 爬虫 PhantomJs 获取JS动态数据
- 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求
- 获取网页内容高度和宽度(不包括滚动条)兼容性JS解决办法
- python selenium 获取动态网页数据
- 利用js将ajax获取到的后台数据动态加载至网页中
- Python爬虫实战入门五:获取JS动态内容—爬取今日头条
- selenium+phantomjs+js动态网页截图