python爬虫学习(一)

爬虫基本原理很好理解:
  给出一个page,将其页面内所有link存入queue,queue是FIFO的队列,然后抓取页面内容进行筛选,筛选后取下一个link重复以上步骤。
  此外,需要考虑是否有link已经爬过的问题,详见URL管理器。

1.URL管理器
  有三种实现方式:
  python内存——set()
  关系数据库——urls(url, is_crawled)
  缓存数据库——redis redis支持set()这种数据结构

  待爬取、已爬取

2.网页下载器
  将网页下载到本地,便于进一步分析和处理
  urllib2 - python官方模块
  request - 第三方模块

  urllib2下载网页的三种方法:

# -*- coding: utf-8 -*-
import urllib2, cookielib

# Way 1: 直接下载
# response = urllib2.urlopen("www.baidu.com")
# print (response.getcode())
# cont = response.read()

# Way 2:
# request = urllib2.Request(url)
# request.add_data('a', '1')
# 伪装
# request.add_header('User-Agent', 'Mozilla/5.0')
# response = urllib2.urlopen(request)

# Way 3: 添加特殊情景的处理器
# HTTPCookieProcessor cookie
# ProxyHandler 代理
# HTTPSHandler https
# HTTPRedirectHandle 处理相互跳转

# 创建cookie容器
cj = cookielib.CookieJar()

# 创建1个opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

# 给urllib2安装opener
urllib2.install_opener(opener)

# 使用带有cookie的urllib2访问网站
response = urllib2.urlopen("http://www.baidu.com")

3.网页解析器
  从网页中提取有价值数据的工具。
  以html网页字符串为输入,输出有价值的数据和新的URL列表。

网页解析器:
正则表达式
自带插件:html.parser
第三方:Beautiful Soup
第三方:lxml

  Beautiful Soup功能相对强大,可以调用html.praser和lxml;
  正则表达式是模糊匹配,其他三者是结构化解析;
  结构化解析—DOM树
  document object model
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值