python网络爬虫

python网络爬虫

一下内容大部分来自https://www.bilibili.com/video/BV1NW411V7CQ?p=15的笔记,豆瓣电影的爬取参考了https://github.com/chen971/test/blob/master/Task_1.md

request库

导入requests库,使用requests.get()获取页面信息
import requests
r=requests.get(http:\www.baidu.com)
返回的是一个response对象,包括5种属性
r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败
r.text HTTP响应内容的字符串形式
r.encoding 从HTTP header种猜测的响应内容编码方式
r,apparent_encoding 从内容中分析出的响应内容编码方式
r.content HTTP响应内容的额二进制形式
HTTP协议
HTTP,Hypertext Transfer Protocol,超文本传输协议
HTTP是一个基于“请求与响应”模式的、无状态的(两次链接间无关系)应用层协议
HTTP协议采用URL作为定位网络资源的标识
URL格式 http://host[:port][path]
host:合法的Internet主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径
HTTP协议对资源的操作
GET 请求获取URL位置的资源
HEAD 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST 请求向URL位置的资源后附加新的数据
PUT 请求向URL位置存储一个资源,覆盖原URL位置的资源
PATCH 请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE 请求删除URL位置存储的资源

requests.request(method,url,**kwargs)

爬虫实战

爬取豆瓣电影排行前25的电影名称和对应封面图片
url=“https://movie.douban.com/top250”
kv={‘User-Agent’:‘Mozilla/5.0’}#不把用户信息替换掉的话,豆瓣会拒绝爬虫程序的访问
r=requests.get(url,headers=kv)
r.status_code
text=r.text
def extract(text):
text = text.split(’"’)
name = text[1]
image = text[3]
return name, image
item=[]
for i in range(25):
text = text[text.find(‘alt’)+3:]
item.append(extract(text))
结果:
python网络爬虫