python爬虫
来源:互联网 发布:阿里云国际站 编辑:程序博客网 时间:2024/06/06 18:29
刚学python,边看教程亦步亦趋写了个最简单的爬虫,下面介绍一下网络爬虫重要的组件
下图是URL管理器:主要作用是保存新的URL,防止重复抓取和循环抓取
有两个缓存空间:待爬取URL集合:set(), 已爬取URL集合:set()
网页下载器(urllib2)
作用:将互联网上URL对应的网页下载器到本地
三种常用写法
(1)import urllib2
response = urllib2.urlopen("http://www.baidu.com")
print response.getcode() #查看是否成功下载网页,成功为200
cont = response.read() #读出下载的网页的html代码
(2) import urllib2
request = urllib2.Request(url)
request.add_data('a', '1')
request.add_header('User_Agent', ‘Mozilla/5.0’)#伪装成浏览器访问,因为有些网站拒绝脚本访问
response = urllib2.urlopen(request)
(3)有些情况需要添加特殊情景的处理器
HTTPCookieProcessor(需要用户登陆)
ProxyHandler(需要代理)
HTTPSHandler(协议使用HTTPS加密访问)
HTTPRedirectHandler(URL自动跳转)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
urllib2.urlopen(url)
urllib2.urlopen(request)
import urllib2, cookielib
cj = cookielib.cookiejar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
response = urllib2.urlopen("http://www.baidu.com")
网页解析器
作用:从网页中提取有价值数据的工具
html网页字符串-》网页解析器-》价值数据和新的URL列表
常用网页解析
正则表达式 html.parser beautifulSoup lxml
模糊匹配 这三个属于结构化解析
beautifulSoup兼容html.parser和lxml,它所做的就是将网页字符串转化为一颗数,按节点搜索你想要的数据
代码 from bs4 import BeautifulSoup
import re
soup = BeautifulSoup(html_doc, 'html.parser', from_encording = 'utrf-8')
node = soup.find_all('a')
node = soup.find_all('a', href = '/view/123.htm')
node = soup.find_all('a', href = re.compile(r'/view/\d+/.htm'))#正则表达式匹配
node.name :得到标签
node['href']:得到属性
node.get_text():得到文本
html输出器
作用:将得到的信息写入一个html文件里,具体怎么写就不赘述了。下面有完整代码地址
http://download.csdn.net/download/qq_26654257/10008995点击打开链接
阅读全文
0 0
- python爬虫-->爬虫基础
- [爬虫] Python爬虫技巧
- Python爬虫
- python 爬虫
- python 爬虫
- python 爬虫
- python爬虫
- Python爬虫
- Python爬虫
- python 爬虫
- Python爬虫
- python爬虫
- python 爬虫
- python 爬虫
- python爬虫
- python爬虫
- python爬虫
- python 爬虫
- AngularJs实现简易的计算器
- first day
- Codeforces Round #438 A. Bark to Unlock
- 数据库 SQL实战练习
- OpenCV 2.4.9 配置使用
- python爬虫
- 引水入城
- JZOJ1239 邦德(加强版)
- 唉 再瞎搞你就一事无成了
- java基础-多态-接口
- Java并发编程:深入剖析ThreadLocal
- JZOJ5397. 【NOIP2017提高A组模拟10.6】Biology trie+LCA/哈希
- 2017-10-6离线赛总结
- codeforces 862b