日期:2020-11-25笔记
1.判断网页是否允许爬虫
大众点评网为例
from urllib.robotparser import RobotFileParser
rp=RobotFileParser()
rp.set_url('http://www.dianping.com/')
rp.read()
print(rp.can_fetch('*','http://www.dianping.com/'))
2.抓取网站cookie
百度为例
import http.cookiejar,urllib.request
cookie=http.cookiejar.CookieJar()
handler=urllib.request.HTTPCookieProcessor(cookie)
opener=urllib.request.build_opener(handler)
response=opener.open("http://www.baidu.com")
for item in cookie:
print(item.name+"="+item.value)
3.异常处理
e.code返回异常状态信息,判断服务器状态
from urllib import request,error
try:
response=request.urlopen('https://cuiqingcai.com/index.htm')
except error.HTTPError as e:
print(e.reason,e.code,e.headers,sep='\n')
print(e.code)
requests库
判断相应状态,做爬虫时可以加个try-except,返回200则为正常
import requests
r=requests.get("https://www.baidu.com")#get方法请求,常用的还有post方法
print(r.status_code)
print(r.cookies) #输出cookies
print(r.headers) #输出头
for key,value in r.cookies.items(): #相对于urllib更方便
print(key+'='+value)
4.设置代理
代理可以在网上找
import requests
proxies={
"http" :"http://110.10.1.10:3128",
"https":"https://10.10.1.10:1080",
}
requests.get("https://www.baidu.com",proxies=proxies)
5.超时设置
请求时设置响应时间
import requests
requests.get("https://www.baidu.com",timeout=3)#设置3s
6.身份验证
有些网页一点击去就需要登录
import requests
r = requests.get(url, auth =(' username ', ' password'))
print(r.status_ code) #返回200则登陆成功
最后:我是垃圾加小白,请不要喷我