Request库有七个基本方法:
首先以requests库的request方法进行讲解:
其次,以其中典型的get方法进行说明:
1.
r=requests.get(url)
首先get构造一个向服务器请求资源的Request对象,r是一个返回的一个包括服务器资的Response对象。
2.
r=requests.get(url,params=None,**kwargs)
params:url中的额外参数,字典或者字节流格式...可以修改url内容
**kwargs是12个可以控制的参数:
特别指出,headers是一个字典,可以修改http头,比如有些网站禁止爬虫使用,我们可以修改user-agent:
hd = {'user‐agent': 'Chrome/10'}
r = requests.request('POST', 'http://python123.io/ws', headers=hd)
其余6中与get类似。
最后,是Request的标准模板:
try:
r=requests.get(url)
r.raise_for_status
r.encoding=r.apparent_encoding
return r.text
except:
return ""
Beautiful Soup库是解析、遍历、维护“标签树”的功能库。
1.首先,三种遍历方式:下行遍历、上行遍历,平行遍历。
(平行遍历发生在同一个父节点下的各节点间。)(复数的都是迭代变量,用在for循环中)
使用方法:
from bs4 import BeautifulSoup
import bs4
soup=BeautifulSoup(html,"html.parser")#soup则为返回的html内容
soup.prettify()#为html文本增加‘\n’使得看起来更好看一些
find方法:
soup.find_all(name, attrs, recursive, string, **kwargs)
正则表达式的表示类型是raw string:表示为r'text'。raw string是不包括对转义符再次转义的字符串。就是使用\d的时候,\不需要写成\\表示转义。
Re库默认贪婪匹配,即输出匹配最长的子串。但是存在多种匹配,都可以在操作符后面加?变成最小匹配。