python爬虫常用的模块分析


Posted in Python onAugust 29, 2014

本文对Python爬虫常用的模块做了较为深入的分析,并以实例加以深入说明。分享给大家供大家参考之用。具体分析如下:

creepy模块

某台湾大神开发的,功能简单,能够自动抓取某个网站的所有内容,当然你也可以设定哪些url需要抓。

地址:https://pypi.python.org/pypi/creepy

功能接口:

set_content_type_filter:
设定抓取的content-type(header中的contenttype)。包括text/html

add_url_filter:
过滤url,传入的可以是正则表达式

set_follow_mode:
设定递归模式,F_ANY:该页面上所有链接都会抓取。 F_SAME_DOMAIN和F_SAME_HOST类似。即同一个域名的都会抓取。F_SAME_PATH:同一路径的抓取。例如bag.vancl.com/l1/d3/1.jpg path为l1/d3/1.jpg,则path为l1/d3/*的都会抓取。这里可以根据需要增加自己的递归模式

set_concurrency_level:
设定线程最大数

process_document:
一般需要重写,处理网页内容,提取自己需要的内容。

selenium
可视化界面,抓取自动化,api使用超简单,完全像是自己在操作浏览器。

官方网站:http://www.seleniumhq.org/
python官方网站
http://pypi.python.org/pypi/selenium
webdriver api(很好用,建议多了解一下)
http://www.seleniumhq.org/docs/03_webdriver.jsp

以下是一个抓取凡客网站的例子:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Firefox()
browser.get('http://bag.vancl.com/28145-28167-a18568_18571-b1-n3-s1.html#ref=hp-hp-hot-8_1_1-v:n')
elem = browser.find_element_by_name('ch_bag-3-page-next') # Find the search box
time.sleep(1)
print elem.get_attribute("href")
elem.click()

time.sleep(1)
elem = browser.find_element_by_name('ch_bag-3-page-next') # Find the search box
print elem.get_attribute("href")
elem.click()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python smtplib模块自动收发邮件功能(二)
May 22 Python
python实现飞机大战微信小游戏
Mar 21 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
python交易记录链的实现过程详解
Jul 03 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
Feb 12 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
Pandas读取csv时如何设置列名
Jun 02 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
Oct 12 Python
python 用pandas实现数据透视表功能
Dec 21 Python
Python爬虫实战之爬取携程评论
Jun 02 Python
python基础教程之循环介绍
Aug 29 #Python
Python中optionParser模块的使用方法实例教程
Aug 29 #Python
python基础教程之缩进介绍
Aug 29 #Python
python基础教程之常用运算符
Aug 29 #Python
python基础教程之序列详解
Aug 29 #Python
Python获取电脑硬件信息及状态的实现方法
Aug 29 #Python
python基础教程之基本数据类型和变量声明介绍
Aug 29 #Python
You might like
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
php网页病毒清除类
2014/12/08 PHP
php模拟post提交数据的方法
2015/02/12 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
彻底理解Python list切片原理
2017/10/27 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
python简单实现插入排序实例代码
2020/12/16 Python
关于VPN
2012/06/10 面试题
2015年防灾减灾工作总结
2015/07/24 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书