总结:
爬虫流程:数据采集—>数据解析—>数据整理—>数据保存
1.采集:urllib2(python3.3之后的urllib2改为urllib.request) 或者requests
urllib请求的get方式
import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
print(response.read().decode('utf-8'))
# getcode() 返回响应状态码 geturl() 返回资源所在的url info() 返回响应头信息
urllib请求的post方式
import urllib.request
request = urllib.request.Request(url) #创建Request对象
request.add_data('a','1') #添加数据
request.add_header("User-Agent","Mozilla/5.0") #添加http的header
response = urllib.request.urlopen(request) #请求 request 得到 response
# head= {"User-Agent","Mozilla/5.0"}
# request= urllib.request.Request(url,headers = head)
# response = urllib.request.urlopen(request)
# print(response.read().decode('utf-8'))
requests请求的get方式
import requests
response = requests.get('http://httpbin.org/get') #无参的
# 带参数的get方式
# response = requests.get("http://httpbin.org/get?name=germey&age=22")
# 或者 data = {
'name': 'germey',
'age': 22}
# response = requests.get("http://httpbin.org/get",params = data)
print(response.text)
2. 解析: BeautifulSoup + 正则
BeautifulSoup
from bs4 import BeautifulSoup
res = requests.get(url)
soup = BeautifulSoup(res.text, 'lxml')
soup.select() # id class标签等
正则:
import re
re.match()
...
3.整理
一般爬下来的数据是字符串,你需要对字符串进行一系列处理。比如,str.strip()
4.保存
数据库,文件看自己需求