Python爬虫 Day1

要注意看网页的请求方式是request还是get

一、小型爬虫 (爬百度首页)

python 复制代码
from urllib.request import urlopen
url = "https://www.baidu.com"
resp = urlopen(url)
print(resp.read().decode('utf-8'))
print("over!")
//!!!!!!!!!!!!!!!!!
from urllib.request import  urlopen
url = "http://www.baidu.com"
resp = urlopen(url)
with open ("mybai.html",mode = "w") as f:
    f.write(resp.read().decode("utf-8"))
print("ok")

二、http协议

1.请求:

请求行:请求方式(get/post) 请求url地址 协议 请求方式:get显示提交、post隐式提交

请求头:放服务器用到的附加信息::User-Agent\Referer\cookie

请求体:一般放一些请求参数

2.响应

状态行:协议 状态码 200 404 500 302

响应头:放客户端使用的附加信息::cookie

响应体:服务器真正返回给客户端的

三、Request111(爬百度搜索结果1)Get方式直接拼接f,Query String Parameters

python 复制代码
//小小反爬,在网页f12找network,在Request里找User-Agent
import requests
url = 'http://www.baidu.com/s?wd=%E5%91%A8%E6%9D%B0%E4%BC%A6'
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"}
resp = requests.get(url,headers = headers)
print(resp)
print(resp.text)
//改良版通过交互获得需要的内容!!!!!!!!!!!!!!!!!!
import requests
query = input("请输入要查找的内容:")

url = f'https://www.baidu.com/s?wd={query}'
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"}
resp = requests.get(url,headers = headers)
print(resp.text)

四、Request222(爬百度翻译)Post方式 User-Agent

python 复制代码
import requests
url = "https://fanyi.baidu.com/sug"
s = input("请输入要查找的单词:")
dat = {
    "kw":s
}
# 发送post请求,发送的数据必须放在字典中,通过data参数进行传递
resp = requests.post(url,data = dat)
print(resp.json())#将服务器返回的内容直接处理成json() 
# print(resp.text)

运行显示时用 .json() 解决乱码问题

相关推荐
yuhaiqun19895 分钟前
发现前端性能瓶颈的巧妙方法:建立“现象归因→分析定位→优化验证”的闭环思维
前端·经验分享·笔记·python·学习·课程设计·学习方法
Python大数据分析@6 分钟前
使用Dify搭建工作流,实现自动化商品采集分析
运维·python·自动化·网络爬虫
code tsunami6 分钟前
如何将 Helium 与 CapSolver 集成,实现无缝 CAPTCHA 自动化解决
运维·数据库·人工智能·爬虫·python·自动化
玄同7658 分钟前
Python 异常捕获与处理:从基础语法到工程化实践的万字深度指南
开发语言·人工智能·python·自然语言处理·正则表达式·nlp·知识图谱
巴塞罗那的风10 分钟前
golang协程泄漏排查实战
开发语言·后端·golang
派大鑫wink15 分钟前
【Day21】NIO入门:通道、缓冲区与非阻塞IO基础
java·开发语言
quant_198615 分钟前
BTC 行情预警系统实战教程
开发语言·后端·python·websocket·程序人生·金融
查拉图斯特拉面条18 分钟前
JMeter JSR223后置处理器:JSON数据处理与格式转换实战指南
python·jmeter·json
世转神风-20 分钟前
qt-基础打印-不换行打印
开发语言·qt
岁岁的O泡奶25 分钟前
NSSCTF_crypto_[SWPUCTF 2023 秋季新生赛]dpdp
经验分享·python·算法·密码学