当前位置: 首页 > article >正文

手把手教你爬取网站信息

如题,理解这一部分需要一定的Python基础,有些代码我不做详细解释了,但是用这个方法是确实可以爬到的。
此次用以下这个页面(可以用md5软件解密)
1476409DEDD7A55FE86915BC370A3ECD

爬取电影的详情数据

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. 运行结果
在这里插入图片描述


http://www.kler.cn/a/16105.html

相关文章:

  • 民事诉讼中,火灾事故认定书并非不可推翻,其证明力弱于鉴定意见
  • Python期末复习 | 列表、元组、字典、集合与字符串 | 代码演示
  • Unity图形学之Blend指令
  • 《Python Web 抓取实战:豆瓣电影 Top 250 数据抓取与分析》
  • Python的Matplotlib
  • C++ —— 哈希详解 - 开散列与闭散列
  • 关于FFMPEG中的filter滤镜的简单介绍
  • Servlet
  • Doris(24):Doris的函数—聚合函数
  • 【2023程序员必看】前端行业分析
  • Vue(简单了解Cookie、生命周期)
  • 《C和指针》笔记2: const关键字
  • 当音乐遇上Python:用Pydub自动分割音频
  • leetcode 198.打家劫舍
  • 国民技术N32G430开发笔记(9)- IAP升级 Bootloader的制作
  • 【云原生|Docker】13-Docker-compose详解
  • 【flask】理解flask的几个难点,难啃的骨头,线程隔离啥的
  • 完成A轮融资,倍思如何发力场景化为品牌创造广阔未来?
  • cookie、localStorage和sessionStorage三者的区别
  • 小记Java调用C++开发的动态链接库(DLL)
  • 【JAVAEE】JAVA数据库连接(JDBC)
  • SAP重复制造入门到放弃系列之基本配置
  • vbscript+asp编写接口
  • 网络安全基础入门学习路线
  • Excel表格成绩排名全攻略,让你事半功倍!
  • Java 基础入门篇(二)—— Java 基础语法