关于我的第一个爬虫--Python+selenium+parsel+动态网页
来源:互联网 发布:access数据库设计视图 编辑:程序博客网 时间:2024/06/03 16:10
这是一个用于爬花瓣网的小姐姐照片的爬虫。
虽然以前跟着教程做过一个爬糗事百科的爬虫,但是那个太过基础,印象中只需要修改糗事百科后的页面id号就可以,然后配上正则表达式,获取可用的信息(作者、点赞数、日期等)。回想起来确实是一个十分入门的爬虫。
selenium
首先,参考一个知乎教程(网址不可考),运用了selenium包。其实质上是一个模拟浏览器测试的工具。下载了浏览器(常用如Firefox,Chrome)的Driver以后,可以模拟指定的浏览器。
from selenium import webdriverprofileDir = 'xxxxx'profile = webdriver.FirefoxProfile(profileDir)browser = webdriver.Firefox(profile)browser.get(url)html=browser.page_source
其中profile是所模拟的浏览器的配置,如果不设置的话就会以一个全新的浏览器访问(不包含cookie、插件等)。
selenium中有一个重要的概念叫做Wait
,但是在本次实验中,并没有体现出来Wait
的优越性,只能下次再深入研究了。:P Wait
有一种应用就是在加载页面的时候,并不需要等到所有的元素都加载完毕再显示页面。而是使用selenium.webdriver.support.expected_conditions
在出现期待的情形是便停止加载。
parsel
parsel是Scrapy包中的解析模块。它集成了CSS和XPATH的选择方法,可以方便地在网页内容中选择到需要的部分。
本次主要是学习了XPath的用法,XPath是针对XML而言的,对于如下这个XML的例子
<?xml version="1.0" encoding="utf-8"?><Wikimedia> <projects> <project name="Wikipedia" launch="2001-01-05"> <editions> <edition>en.wikipedia.org</edition> <edition>fr.wikipedia.org</edition> </editions> </project> <project name="Wiktionary" launch="2002-12-12"> <editions> <edition>en.wiktionary.org</edition> <edition>fr.wiktionary.org</edition> </project> </projects></Wikimedia>
其中常用有如下三类结点(node):
我们就可以通过XPath来取得相应的结点。此外,在用parsel的时候,我们要注意两点:
首先,是关于parsel选择到的对象res也是一个Selector
的对象,还需要使用exact_first()
方法才能得到所需的结点值。
sel = parsel.Selector(text=text)res = sel.xpath(your_xpath)
除了常规的Xml中的XPath之外,parsel的Selector还支持特殊的contains
操作。比如sel.xpath('//script[contains("XXXXX")]')
,在本例中,就是用这种方法找到动态网页中的JavaScript部分,然后利用js2xml
包中的parse函数变为XML,在取得目标的。
- 关于我的第一个爬虫--Python+selenium+parsel+动态网页
- 我的第一个网页爬虫(python)
- 我的第一个Python爬虫
- 我的第一个python爬虫脚本
- 我的第一个爬虫
- 我的第一个爬虫
- 我写的第一个用Python写的爬虫
- 纪念我的第一个Python爬虫——图片
- 我的第一个小爬虫程序-python
- 我的第一个网页
- 我的第一个网页
- 我的第一个小爬虫
- 我的第一个爬虫日志
- 我的第一个爬虫程序
- 我的第一个豆瓣短评爬虫
- 我写的第一个图片爬虫
- python第一个爬虫
- 第一个Python爬虫
- 新浪微博JavaSDK开发笔记
- 1015 进制转换,素数
- IO&XML
- 2018 京东笔试疯狂序列
- Windows 下配置Tensorflow
- 关于我的第一个爬虫--Python+selenium+parsel+动态网页
- Hibernate入门(7):HQL查询
- 欢迎使用CSDN-markdown编辑器
- 安装ik分词插件
- WOJ-294 数老鼠
- Java之反射机制
- Jquery easyui 将前台数据进行转换
- 卷积神经网络新思路
- Hibernate入门(8):SQL查询