手把手教你爬取网站信息

如题,理解这一部分需要一定的Python基础,有些代码我不做详细解释了,但是用这个方法是确实可以爬到的。

爬取电影的详情数据

1. 在抓包⼯具中先定位到和浏览器地址栏的⽹址⼀样的数据包
①在页面中右击鼠标,点击检查,博主这里用的是Google浏览器
②在弹出来的页面中点击Network,然后再重新刷新一下网页
③在Name列表随意点击一项(单击即可)
④再按Ctrl+F调出搜索框,随意搜索一部列表中的电影,点击列表中的选项,此时搜索框右边的信息已经发生变化了,点击Headers即可定位到包含搜索数据的指定数据包。从指定数据包中就可以提取出url
在这里插入图片描述
继续把滚动条往下拉,拉到最底部,有一个User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36
这个是反UA反爬机制的代码,这个也要用到,可以先准备好,并放在代码的最开始

在这里插入图片描述

2. 查看请求参数
此页面的请求⽅式为get请求参数:这一点可以在Headers查看到:
在这里插入图片描述

点击Payload可以查看请求参数,把这一段复制进你的代码里,但是需要把这里的limit的值改为100,这样才是前100的电影,如果想要前200,改成200即可
在这里插入图片描述

3. 获取相应数据

response = requests.get(url=url,headers=head,params=pram)

这里要把get的三个参数都写进来,因为都用得到

4. 建一个文件来存储爬到的信息

page_text = response.json()
fp = open("./douban.txt","w",encoding="utf8")

此处注意编码和解码的问题,如果没有encoding=“utf8”,可能会报错。

  1. 用循环来遍历前100个"title"和"score"字段
fp = open("./douban.txt","w",encoding="utf8")
for dic in page_text:
    title = dic['title']
    score = dic['score']
    fp.write(title+':'+score+'\n')

6. 源代码

import requests
head={#存放需要伪装的头信息
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"
}

pram={#请求参数
    "type": "13",
    "interval_id": "100:90",
    "action": "",
    "start": "0",
    "limit": "100",
}

url='https://movie.douban.com/j/chart/top_list'

response = requests.get(url=url,headers=head,params=pram)
#获取响应数据
#json()可以将获取到的json格式的字符串进⾏反序列化

page_text = response.json()
fp = open("./douban.txt","w",encoding="utf8")
for dic in page_text:
    title = dic['title']
    score = dic['score']
    fp.write(title+':'+score+'\n')
print(title,'爬⾍保存成功!')

7. 运行结果
在这里插入图片描述

  • 9
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值