自学Python爬虫笔记(day2)
环境python3.9版本及以上,开发工具pycharm
浏览器工具推荐使用Chrome,其他浏览器均有一定程度的阉割。
主要是熟练使用后端界面进行爬取数据。
http协议:超文本传输协议
把一条消息分为三大块内容:
请求:
1.请求行 --> 请求方式(get/post) 请求URL地址 协议
2.请求头 --> 放一些服务器要使用的附加信息
3.请求体 --> 一般放一些请求参数
响应:
1.响应行 --> 协议 状态码(200(正常访问)、302(请求重定向)、404(URL错误)、500(服务器错误))
2.响应头 --> 放一些客户器要使用的附加信息
3.响应体 --> 服务器返回的真正客户端要用的内容(HTML、json)等
requests模块入门:
安装步骤:打开pycharm-->找到下方的terminal终端界面-->输入pip install requests-->等待下载完毕即可使用
若安装速度缓慢,可百度搜索国内源下载,也可直取:
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 阿里云 http://mirrors.aliyun.com/pypi/simple/ 豆瓣 http://pypi.douban.com/simple/
一次性使用方式: pip install -i http://pypi.douban.com/simple/ SomePackage 如果提示不信任则用这个: pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com SomePackage 后面再要加参数的话就如这样: pip install -i http://e.pypi.python.org --trusted-host e.pypi.python.org --upgrade pip #--upgrade 升级pip
使用requests模块获取百度源代码:
import requests # 爬取百度的页面源代码 url = "http://www.baidu.com" resp = requests.get(url) resp.encoding = 'utf-8' print(resp) # 查看响应状态 print(resp.text) # 拿到页面源代码
在pycharm中请求访问数据:
import requests content = input('请输入你要检索的内容:') url = f'https://www.sogou.com/web?query={content}' headers = { # 添加一个请求头信息,UA "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36" } # 处理一个小小的反爬 resp = requests.get(url, headers=headers) print(resp.text) print(resp.request.headers) # 可以查看到请求头信息
get方式请求参数:
import requests url = "https://movie.douban.com/j/chart/top_list?type=13" data = { "type": "13", "interval_id": "100:90", "action": "", "start": "0", "limit": "20" } headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36" } resp = requests.get(url, params=data, headers=headers) # print(resp.text) # 返回的是文本字符串 print(resp.json()) # 获取json数据
post方式请求:
import requests url = "https://fanyi.baidu.com/sug" data = { "kw":input('请输入一个单词:') } resp = requests.post(url, data=data) print(resp.text) # 拿到的是文本字符串 # 或者导入json包,使用print(resp.text) print(resp.json()['data']) # 此时拿到的是json数据。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人