吃饭睡觉打豆豆
二十出头的年纪,脚踏实地。毕竟青春只有一次
随笔 - 38,  文章 - 0,  评论 - 20,  阅读 - 20772

想用selenium实现B站自动登录以及点赞等功能,便查阅如何解决滑动解锁,然而是有关爬虫的内容,便开始学习爬虫,没过多久又想把记录自己生活的网站做起来,朋友便推荐了layui框架倒腾了一晚上自我觉得是做给后端程序员入门的框架,Vue又感觉太难,便开始搞bootstrap,没搞出个所以然来。因为闲着心情烦躁便开始重新学习爬虫。每次写点文章总是碎碎念一段,有人在评论去区说我矫情,是真的。

安装:pip install requests

http请求返回response对象属性

 编码问题

1
2
3
4
5
import requests
r=requests.get('http://www.baidu.com/')
r.encoding='gbk' 或  r.encoding=r.apparent_encoding
 #百度返回的页面内容为ISO-8859-1编码的,如果不设置成gbk则乱码
print(response.text)

 requests的库异常处理

 

requests库的主要方法

复制代码
1 import requests
2 r = requests.get('https://www.cnblogs.com/')
3 r = requests.head('http://httpbin.org/get')
4 r = requests.post('http://httpbin.org/post',key='value')
5 r = requests.put('http://httpbin.org/put',key='value')
6 r = requests.patch('http://httpbin.org/patch',key='value')
7 r = requests.options('http://httpbin.org/get')
8 r = requests.delete('http://httpbin.org/delete')
复制代码

爬取网页通用框架

复制代码
 1 import requests
 2 def get_Html(url):
 3     try:
 4         r = requests.get(url,timeout=30)
 5         r.raise_for_status()
 6         r.encoding=r.apparent_encoding
 7         return r.text
 8     except:
 9         return "产生异常"
10 
11 if __name__=="__main__":
12     url = "http://www.baidu.com"
13     print(get_Html(url))
复制代码

几个小案例

复制代码
案例一 京东商品爬取
import requests
url = 'https://item.jd.com/100010131982.html'
try:
    r = requests.get(url)
    r.raise_for_status()
    r.encoding=r.apparent_encoding 
    print(r.text[:1000]) #1000代表截取前1000个字符
except:
    print("爬取失败")
案例二 亚马逊
import requests
url = 'https://www.amazon.cn/dp/B08531C6PV/ref=s9_acsd_hps_bw_c2_x_1_i?pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-top-3&pf_rd_r=XXHRT6R61ZYZA5FGMPKJ&pf_rd_t=101&pf_rd_p=b2e55b79-7940-4444-967a-6dbe6d7cb574&pf_rd_i=1935403071'
try:
    kv = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'} #模拟浏览器
    r= requests.get(url,headers = kv)
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[1000:2000])
except:
    print("爬取失败")
案例三 百度
import requests
kv = {'wd':'python'}
r = requests.get('http://www.baidu.com/s',params=kv)
print(r.requests.url)
print(len(r.text))
复制代码

等学到新的就来更新,我记得刚学的时候我就开始爬贴吧了,现在老老实实看基础了


未完待续!

 

posted on   测试小张  阅读(298)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示