当前位置: 首页 > wzjs >正文

新疆建设网官网网站聊城疫情最新消息

新疆建设网官网网站,聊城疫情最新消息,全国行业名录搜索系统,管理咨询公司网站一、爬虫理论 爬虫——请求网站并提取数据的自动化程序 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动的抓取互联网信息的程序。 原则上&…

一、爬虫理论

爬虫——请求网站并提取数据的自动化程序

网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动的抓取互联网信息的程序。

原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做,也就是说万物皆可爬,可视即可爬

爬虫能抓取拿些数据?

- 网页文本

- 图片

- 视频,音频

- 其他(只要能请求到的 就意味着都能获取到)

二、request模块

作用:发送网络请求,获得响应数据

官方文档:https://requests.readthedocs.io/zh_CN/latest/index.html

Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库

它比urllib更加方便,可以节约大量的工作,完全满足HTTP测试需求的库

⼀句话——Requests是一个Python代码编写的HTTP请求库,方便在代码中模拟浏览器发送http请求a

安装命令
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

1.Requests请求

# https://www.baidu.com/
import requests
response = requests.get('https://www.baidu.com/')
print(response) # 响应体对象(响应源码+响应状态码+响应URL)
print(response.text) # 查看响应体内容print(type(response.text)) # 查看响应内容的数据类型print(response.status_code) # 查看响应状态码
print(response.url) # 查看响应url

各种请求方式

import requests
requests.get('http://httpbin.org/get')   # GET请求
requests.post('http://httpbin.org/post')  # POST请求
requests.put('http://httpbin.org/put')
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.org/get')

1.基于get请求
# 第一种写法
#https://www.baidu.com/s?wd=%E9%97%B9%E9%97%B9&base_query=%E9%97%B9%E9%97%B9&pn=10&oq=%E9%97%B9%E9%97%B9&ie=utf-8&usm=1&rsv_pq=a4f4e52200027b13&rsv_t=82600eHOUMYEzX16IwoPl%2BnK%2FnzM6jy5R9dFD9dBFEwqYVTYCFyzaCudbQA
url= 'http://httpbin.org/get?age=12&name=naonao'#&和
r = requests.get(url)
print(r.status_code)
print(r.text)

第二种写法

data = {'name':'lisi','age':10
}
url = 'http://httpbin.org/get'
r = requests.get(url,params = data) #params:携带get请求的参数
print(r.text)
2.基于Post请求
url ='http://httpbin.org/post' 
d = {'lisi':10}
r = requests.post(url,data=d) #data:携带post请求的参数
print(r.text)

3.获取json数据
import jsonurl = 'http://httpbin.org/get'
r = requests.get(url)
# print(r.status_code)  # 查看响应状态码
a = r.text
# print(a)   
# print(type(a))  # 查看数据类型#利用内置模块 json
dict_data = json.loads(a)#str 转为dict
print(dict_data)
print(type(dict_data))
res = dict_data['url']
print(res)
# res = dict_data['Host']#错误演示 报错
res = dict_data['headers']['Host']
print(res)json_data = r.json()
print(json_data)
print(type(json_data))
4. .content 获取二进制数据
url = 'https://www.baidu.com/img/baidu_jgylogo3.gif'
r = requests.get(url)   # 01010101
print(r.content)  # content:获取二进制数据
print(type(r.content))
with open('bdu.png','wb')as f:f.write(r.content)
"""
bytes类型是指一堆字节的集合,在python中以b开头的字符串都是bytes类型Bytes类型的作用:1, 在python中, 数据转成2进制后不是直接以0101010的形式表示的,而是用一种叫bytes(字节)的类型来表示2,计算机只能存储2进制, 我们的字符、图片、视频、音乐等想存到硬盘上,也必须以正确的方式编码成2进制后再存。记住一句话:在python中,字符串必须编码成bytes后才能存到硬盘上
"""
5.添加headers 
# 目标站点 -- 知乎 :https://www.zhihu.com/explore
url ='https://www.zhihu.com/explore'
#组建身份信息
h = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
r = requests.get(url,headers = h) #headers = (关键字);携带伪装参数
print(r.status_code)
print(r.text)

2.Response响应

1.response属性
# 目标网站 --  :http://www.jianshu.com    
import requests
url = 'http://www.jianshu.com'
h = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}
r = requests.get(url,headers = h,allow_redirects=False)
print(r.status_code) # 查看响应状态码# 查看响应头信息
print(r.headers)# 查看url
print(r.url)# 查看网页是否跳转
print(r.history)# # 禁止网页跳转    allow_redirects=False #默认是为True
#为空就是没有跳转
2.状态码判断

200 请求成功   
301、302 请求发生跳转   
404   页面没找到  
500 502  503服务器内部错误

3.高级操作

会话维持

http/https 协议 是一种无状态的协议,对事物处理无记忆功能,所以每次请求都是一个独立状态

会话维持作用:跨请求时保持住某些参数

为了解决无状态协议 就有了cookie和session的出现

(1).通过cookie维持会话

# 通过cookie维持的只是一种状态(只能知道你是登录还是未登录的状态)    用户信息(账号+密码)
'''
应用场景:
碰到一定需要登录才可以访问的网站,那爬虫也需要携带上登录后的信息(cookie)好处: 能请求需要登录才可以访问的页面
坏处:会大大提高你被反爬的几率  (换账号)
'''
import requests
# 构建身份伪装的时候 字典内是可以放多条信息的
head = {'cookie': 'UM_distinctid=1837e7ffbf6dda-0360993970b77c-78565470-1fa400-1837e7ffbf7fa1; CNZZDATA1279807957=36991445-1664272379-null%7C1664272379; _uab_collina=166427466049560581446295; ssxmod_itna=eqUxBDuDnGeYw4Dq0dc7tD9mat+8qY5mQwoAQQD/KDfO4iNDnD8x7YDvIAaQAC+BAaeqeW=exIiDOrQ4Liq4EbmfvWUDB3DEx0=etI74iiBDCeDIDWeDiDG4GmS4GtDpxG=Dj0FUZMUxi3Dbh=Df4DmDGY9QqDgDYQDGTI6D7QDIw6QiY49bCLKLLRgiY2xKG=DjMbD/fPFMQRFs=+ZbjnTPWPuDB=zxBjMfwXUfeDHzLNlelePWx+o/2mF7xhxQYeoYrh3tPQ4BY4jiAp=RGDE04wcwDDAKY+d0bD==; ssxmod_itna2=eqUxBDuDnGeYw4Dq0dc7tD9mat+8qY5mQwoAQG9b=QDBk7De7P5vA8vx5G8CqvxAP5uiBRGi+tGhYO=HOetAYQP4kUmGujkh3ZoXUhqt1g7pUjb/E8nwv8QSi91kU9A9G71OXCSLWO58e=yb4K7HT6INeUv1MEAse+FmNhu8d=oaa8AiF6npbSmrCS4hs8SHOt3sDUWEN/nhX/p45oWW1F7fMKLU/aOCcg8Lyajs6oLfPTmrZryUvx=8gcm0SZerB7WRdxWihgCHghf8Mc1LBjmCAt9zjVegGgOl4P9bA5wiD6ebGTc7jRDCrzRcNjyTlvxcHiBH29wMzbqyirR0WBhqQ0bFuiWvd4+8jGevm5gBtm7m3Te/Y4lyD4xbQ49Ywc/A8nyKMwxvqO3ohBH3D07LeDLxD2+GDD==; __bid_n=185a0f06f0b9f33b234207; read_mode=day; default_font=font2; locale=zh-CN; Hm_lvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1677674664; BAIDU_SSP_lcr=http://localhost:8888/; FPTOKEN=9aR7Q74Pjtiby0hWs+8OC+QuVOuULdxF5RiFXsZCxtZguI4t4pXZPWszXvIKiK5qyyCISfrCGkkXxCA/TmGCsKuxXIGsUt0roo1Hk3FWuN0e4on1QJ9i7u/gT4EFkPuKLJrifNufedeW1Iws1qij1n9hh3ZLO4OdJ7VWD0yWRzJ9qRkG+yCCD6pP1rDG25+NbR5ccJZZ+sQ6hi1BUUyXc8437EaVk2A/qQxIfUCmWaRr9OHUoRQgqFweCl88gTeUVR447ln1BlWFqssikSTtZNP+JSaCXMgU9Va9DgCHUmf++p+Yq5Vs0/hrUuuYeUhTGOyZchV0pgatqZusu3U60dl/OHN3UxkkUk83paSy0Ietzu0yaWA1CLfmZLRDnnL/5ZctdbYY+g3Sk9CYNtPH0w==|hYfAlXpGQjGm4kMaq/PWT6E+PblQyaQrBzFkXalOeM4=|10|0cd8f2c4502ad7265689616b0e83b86a; _ga=GA1.2.1296484011.1677675227; _gid=GA1.2.232229311.1677675227; remember_user_token=W1syNjQ2MDkwMF0sIiQyYSQxMSRJUi9IRks4T1BUWFo5bW14Q3BTbTIuIiwiMTY3NzY3NTM2Mi44ODgwNzU0Il0%3D--316f3042074c36712cf27541f93abdf363f05116; web_login_version=MTY3NzY3NTM2Mg%3D%3D--a8c5d5e8df0d0cd0ecb44d8732cfcd62b5c2646a; _m7e_session_core=04577b356d69a86184b1b26468ff8726; _gat=1; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2226460900%22%2C%22first_id%22%3A%221837e7ffb9ee32-078ff4508ee4b4-78565470-2073600-1837e7ffb9f483%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%A4%BE%E4%BA%A4%E7%BD%91%E7%AB%99%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fopen.weixin.qq.com%2F%22%7D%2C%22%24device_id%22%3A%221837e7ffb9ee32-078ff4508ee4b4-78565470-2073600-1837e7ffb9f483%22%7D; Hm_lpvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1677675376','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36',
}
response = requests.get("https://www.jianshu.com/",headers = head)
print(response.text)

(2).通过session维持会话

#创建一个session对象
#通过session发请求 此时就从无状态变成了有状态
import requests
s = requests.session()
# s.get('https://www.baidu.com/')
res = s.get('https://www.baidu.com/s?wd=python&base_query=python&pn=90&oq=python&ie=utf-8&usm=4&rsv_pq=f41c8f1d000399cb&rsv_t=ed15VorzvvhgKbeJyyNkbIwWFsEJ3dAclQ5pyPrU0ZBWA2UfX%2FBrXv%2BFsnE')
print(res.text)
 代理设置
# 目标站点:https://www.baidu.com
import requests
url= 'https://www.baidu.com'
# 组建IP信息
p ={'http':'114.231.46.240:8888','https':'114.231.46.240:8888',
}
r = requests.get(url,proxies = p )  # proxies:携带IP信息
print(r.status_code)
超时设置
# 目标站点 : http://baidu.com
import requests
url= 'https://www.baidu.com'
r = requests.get(url,timeout = 2) #timeout关键字用来设置响应时间
print(r.status_code)
异常处理
url= 'https://www.baidu.com'
try:#你可能会出现异常的代码r = requests.get(url,timeout = 0.0000000001) print(r.status_code) 
except:#解决print('timeout!')
http://www.dtcms.com/wzjs/233037.html

相关文章:

  • 建设网站实验活动小结疫情防控最新通告
  • 上海市建设工程交易服务中心搜狗seo怎么做
  • 请人做网站域名和主机网络宣传渠道有哪些
  • 绵阳做手机网站建设秦皇岛seo优化
  • 淘宝上做网站权重邢台网站公司
  • 微信怎么做捐钱的网站广东疫情最新资讯
  • 品牌网站应该怎么做青海seo关键词排名优化工具
  • 网站平台开通微信支付深圳网站建设运营
  • 公司网站建设有哪些seo优质友链购买
  • wordpress 3.7.1 下载树枝seo
  • ps在线图片编辑天津seo
  • 杭州网站制作建设想在百度做推广怎么做
  • 旅游网站建设注册软文营销策划方案
  • 做调查报告的网站网站推广的方法有哪几种
  • 经营性网站需要icp备案吗seo网站有优化培训班吗
  • 上海易站网站建设b站广告投放平台入口
  • 青岛学校论坛网站建设网上宣传广告怎么做
  • 苏州建设局官方网站中国站长
  • 网站文章列表模板软文营销的步骤
  • 广州白云手机网站建设seo优化检测
  • 有没有专门的网站做品牌授权的整站seo优化
  • 深圳今天新闻头条专业seo服务商
  • 做网站软件流程海外广告联盟平台推广
  • 用php做网站的新闻自己做网站流程
  • 辽宁省住房和城乡建设厅网站上不去今日军事新闻最新消息新闻
  • 建立公司需要多少资金学seo优化
  • html设计素材网站win7系统优化
  • 厦门网站建设公司推荐微信管理系统登录
  • 做网站好看的旅行背景图片百度网盘私人资源链接
  • 如何做属于自己的网站世界杯比分查询