Python爬虫:调度器、网页下载器、解析器
urllib2模块:用来下载网页
方法1:最简洁的方法:
import urllib2
#用urllib2的urlopen方法可以下载所需要下载的url,返回给response
response = urllib2.urlopen('http://www.baidu.com')
#获取状态码,如果是200表示获取成功
print response.getcode()
#读取内容
cont = respone.read()
例如:爬出艺库首页内容
#!/usr/bin/env python
#coding=utf8
import urllib2
response = urllib2.urlopen('http://www.eku.com.cn')
print response.getcode()
cont = response.read()
print cont
下载网页方法2:添加data,http header
data:添加用户所需要的信息
http header :添加http的头信息
第二种方法
import urllib2
#创建Request对象
request = urllib2.Request(url)
#添加数据
request.add_data('a','1')
#添加http的header
request.add_header('User-agent','Mozilla/5.0')
#发送请求获取结果
response = urllib2.urlopen(request)
第三种方法
网页解析器:
网页解析器:从网页中提取有价值数据的工具。
Python有哪几种网页解析器:
1、正则表达式
2、html.parser
3、beautiful soup (属于Python第三方库,用于从HTML或xml中提取数据)
4、lxml
(1)创建Beautiful Soup 对象
from bs4 import BeautifulSoup
#根据HTML网页字符串创建BeautifulSoup 对象
soup = BeautifulSoup(
html_doc, #HTML文档字符串
'html.parser' #HTML解析器
from_encoding='utf8' #html文档的编码
)
(2)搜索节点(find_all,find)
#方法:find_all(name,attrs,string)
访问节点信息:
#得到节点:<a href='1.html'>Pyton</a>
#获取查找到的节点的标签名称
node.name
#获取查找到的a节点的href属性
node['href']
#获取查找到的a节点的链接文字
node.get_text()