python爬虫入门基础

from urllib.request import urlopen

url = "http://www.baidu.com"
resp = urlopen(url)

# print(resp.read().decode("utf-8"))#读取内容  编码方式头几行可以看到

#保存到本地文件中
with open("mybaidu.html",mode="w",encoding="utf-8") as f:
    f.write(resp.read().decode("utf-8"))
print("over!")

上述网站没有反扒机制

WEB请求

服务端渲染

在页面源代码可以看到数据

客户端渲染

在页面源代码看不到数据,但第二次请求有数据,我们可以通过浏览器抓包工具找到数据

Http协议

 request入门

安装requests库

用命令pip install requests比较快

如果嫌网速下载太慢,可以换源下载,去百度搜索 pip清华源

get

import requests

url="https://www.sogou.com/sie?query=周杰伦"

# resp = requests.get(url)
# print(resp)#响应码
# print(resp.text)#拿到页面源代码
# #但是该网站有反扒机制,需要进一步处理,加入请求头
headers={
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.9 Safari/537.36"
}
resp = requests.get(url,headers=headers)
print(resp)#响应码
print(resp.text)#拿到页面源代码

 post

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

客户端类型

import requests
#客户端服务器类型
url="https://movie.douban.com/j/chart/top_list"

#重新封装参数
param={
    "type": "24",
    "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/98.0.4758.9 Safari/537.36"
}
resp=requests.get(url=url,params=param,headers=headers)
print(resp.request.url)
print(resp.json())#若没有数据,则被反扒了
resp.close()#关闭resp

 总结:

爬取一个网站,首先查看这个网站是客户端类型还是服务器端类型,然后在浏览器中查看请求方式,如果初步爬取不到数据,则该网站有反扒机制,则需要进行处理

如果想学习更多的话,我推荐下面这个课程

2021年最新Python爬虫教程+实战项目案例(最新录制)_哔哩哔哩_bilibili

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低调$(生活)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值