1、requests库基础
1.1 常用函数get()
import requests
header = {'use-agent':'chrome/10'}#定制请求头
r = requests.get('https://www.baidu.com/',header )
r.raise_for_status#返回访问状态
r.encoding = r.apparent_encoding#使用合适的编码格式
print(r.text)#打印
1.2 其它
r.raise_for_status
检查访问的状态是否成功,通常返回200代表访问成功
这里给出一个通用的代码
def getHMTL(url):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return(r.text)
except:
return('访问出错')
re库及其应用
正则表达式可以理解为简洁表达一组字符串的表达式。
主要应用:字符串匹配
start_url = 'https://movie.douban.com/top250?start='
def getUrl(num):
return url + str((num)*25) + '&filter='
def getHTML(url):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return(r.text)
except:
return ''
def getmovie(infoList,html):
ranks = re.findall('<em class="">(.+)</em>',html)
names = re.findall('<span class="title">([\u4e00-\u9fa5]+)</span>',html)
if len(ranks) == len(names):
for i in range(len(ranks)):
info = [ranks[i],names[i]]
infoList.append(info)
return infoList
def printList(infoList):
print('{:^6}\t{:^8}'.format('排名','电影名'))
for i in range(len(infoList)):
print('{:^6}\t{:^8}'.format(infoList[i][0],infoList[i][1]))
if __name__ == '__main__':
num = 5
infoList = []
for i in range(num):
getmovie(infoList,getHTML(getUrl(i)))
printList(infoList)