python_爬虫基础

url组成:
协议
域名
端口(如果url里面没有端口,那么采用默认端口)
文件路径
文件名
参数
锚点

HTTP:超文本传输协议
端口:80

工作原理:
请求响应模型
无连接
无状态

http 请求包含哪些内容
请求行(请求方法[get、post] url 协议版本)
请求头(每个参数以键值对形式存在)
空行
请求数据(请求参数)

请求头参数
1、 user-agent:请求发起者的身份信息
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36

2、'Cookie': 'SINAGLOBAL=2130213546448.7048.1553060688804; un=15910903918; login_sid_t=c059d46b84c9ba72e46931f929e03ae6; cross_origin_proto=SSL; Ugrow-G0=cf25a00b541269674d0feadd72dce35f; TC-V5-G0=42b289d444da48cb9b2b9033b1f878d9; wb_view_log=1280*7200.8999999761581421; _s_tentry=-; Apache=9644517198258.39.1560992628999; ULV=1560992629006:6:6:4:9644517198258.39.1560992628999:1560930667032; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WF7_w0vCo36wpUWVyPM1nWC5JpX5K2hUgL.FoMpSh2ce0nc1hB2dJLoIp7LxKML1KBLBKnLxKqL1hnLBoMN1KzX1KzcS0B4; ALF=1592528727; SSOLoginState=1560992728; SCF=Aq3PMXpon7NahzGtuZvlimzZ84UE32grTZeYO8vtC_oCuecA2XslBSJj22nks8t7258pq6CpONI3KMQ-BWsgYEI.; SUB=_2A25wDquIDeRhGeFP71MX8ybKwziIHXVTfZpArDV8PUNbmtAKLWHfkW9NQTdocHVpNNPNLHv7GCZmz67V-yGmonYX; SUHB=0JvgZhTqcaiqmn; wvr=6; wb_view_log_7141638684=1280*7200.8999999761581421; UOR=www.baidu.com,weibo.com,www.baidu.com; TC-Page-G0=51e9db4bd1cd84f5fb5f9b32772c2750|1560995726|1560995595; webim_unReadCount=%7B%22time%22%3A1560995786988%2C%22dm_pub_total%22%3A1%2C%22chat_group_pc%22%3A0%2C%22allcountNum%22%3A33%2C%22msgbox%22%3A0%7D'

3、referer
	表示请求是从哪个URL跳转过来的

响应:
响应状态码
响应正文

常见状态码
200 请求成功
301 永久重定向
302 临时重定向
404 请求的资源(网页等)不存在
403 Forbidden 合法请求,但对被请求页面的访问被禁止【爬虫中如果遇到,怀疑已经被反爬】
503 服务器当前不可用(过载或者宕机)【爬虫中如果遇到,怀疑已经被反爬】

请求方法
get、post

安装第三方包:requests
安装中如果提示PIP需要更新
1、win + R
2、输入cmd(进入win dos界面)
3、执行命令 python -m pip install --upgrade pip
更新成功后,回到pycharm 重新进行安装即可

爬虫步骤
1、确定需求
2、寻找/分析需求
3、发送请求(requests、urllib.request)
4、解析数据
5、存储数据

爬虫分析请求步骤:
1、抓取请求(使用抓包工具或者F12浏览器调试工具)
2、分析url
3、分析请求方法
4、分析请求头参数(user-agent、referer、cookie)

import requests

url = 'https://www.baidu.com/'
headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
}
resp = requests.get(url,headers=headers)
# 设置响应正文的编码方式
resp.encoding = 'utf-8'
# print(resp)
# 获取html文档内容(响应正文)
# print(resp.text)
# 获取html文档内容(响应正文),返回的类型是字节类型
# print(resp.content)
# 获取请求头
print(resp.request.headers)
# 获取响应头
print(resp.headers)
# 获取响应的状态码
print(resp.status_code)
import requests

url = 'https://account.weibo.com/set/index?topnav=1&wvr=6'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
    'Cookie': 'WBStorage=; SINAGLOBAL=2130213546448.7048.1553060688804; un=15910903918; _s_tentry=login.sina.com.cn; Apache=4582700462260.074.1561012049599; ULV=1561012049667:7:7:5:4582700462260.074.1561012049599:1560992629006; webim_unReadCount=%7B%22time%22%3A1561012094516%2C%22dm_pub_total%22%3A1%2C%22chat_group_pc%22%3A0%2C%22allcountNum%22%3A35%2C%22msgbox%22%3A0%7D; cross_origin_proto=SSL; Ugrow-G0=589da022062e21d675f389ce54f2eae7; login_sid_t=b554f5f03106fcf7a98b90e0b4b719ab; UOR=www.baidu.com,weibo.com,login.sina.com.cn; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WF7_w0vCo36wpUWVyPM1nWC5JpX5K2hUgL.FoMpSh2ce0nc1hB2dJLoIp7LxKML1KBLBKnLxKqL1hnLBoMN1KzX1KzcS0B4; ALF=1592548812; SSOLoginState=1561012813; SCF=Aq3PMXpon7NahzGtuZvlimzZ84UE32grTZeYO8vtC_oCh0Kum7EYZMkwG8JvLUZFmMCdsyxw-r3MucNX0GrONp8.; SUB=_2A25wD1odDeRhGeFP71MX8ybKwziIHXVTfczVrDV8PUNbmtAKLRLikW9NQTdocJZSJedrR4UN6iNBhhV9R-RevMsn; SUHB=0P1MIVwamSbPxD; wvr=6; WBStorage=6b696629409558bc|undefined'
}
resp = requests.get(url, headers=headers)
# resp.encoding = 'gb2312'
# print(resp.text)
with open('weibo.html','w',encoding='utf-8')as f:
    f.write(resp.text)
# 判断请求是否被重定向,如果没有发生重定向返回一个空列表,如果又发生重定向,返回重定向的状态码
print(resp.history)
print(resp.url)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值