python 爬虫登录获取数据失败_python学习第三天——爬虫

'''

一、爬虫原理

1.什么是互联网?

指的是由一堆网络,把一台台计算机互联到一起称之为互联网。

2.互联网建立的目的?

为了数据的传递以及数据的共享。

3.上网的全过程:

普通用户:打开浏览器->往目标网站发送请求->获取响应数据->渲染到浏览器中

爬虫程序:模拟浏览器->往目标网站发送请求->获取响应数据->提取有价值数据->持久化到数据中

4.浏览器发送的是什么请求?

http协议的请求。

-客户端

浏览器是一个软件->客户端的IP和端口

-服务端

http://www.jd.com/

www.jd.com(京东域名)->DNS解析->京东服务端的IP和端口

客户端的IP和端口—>服务端的IP和端口发送请求可以建立链接获取相应的数据。

5.爬虫全过程

-发送请求 (需要请求库:Resquests请求库,Selenium请求库)

-获取响应数据 (只要往服务器发送请求,请求通过后会返回响应数据)

解析并提取数据 (需要解析库:re、BeautifulSoup4、Xpath…)

保存本地 (文件处理、数据库、MongoDB存储库)

二、Requests请求库

1.安装与使用

-打开cmd

-输入:pip3 install requests

'''

import requests #导入requests请求库#往百度主页发送请求,获取响应对象

response = requests.get(url='http://www.baidu.com/')#设置字符编码为 utf-8

response.encoding = 'utf-8'

#打印响应文本

print(response.text)#把响应文本写入本地

with open('baidu.html', 'w', encoding='utf-8') as f:

f.write(response.text)

importrequests#往视频源地址发送请求

response = requests.get('https://video.pearvideo.com/mp4/adshort/20190624/cont-1569754-14051527_adpkg-ad_hd.mp4')#打印二进制流、比如图片、视频等数据

print(response.content)#保存视频到本地

with open('视频.mp4','wb') as f:

f.write(response.content)

importrequests

response= requests.get('https://p.ssl.qhimg.com/dmfd/420_627_/t013bfcad28d74e60d1.jpg')#打印二进制流、比如图片、视频等数据

print(response.content)#保存图片到本地

with open('图片1.jpg','wb') as f:

f.write(response.content)

'''

1.先梨视频主页发送请求

http://www.pearvideo.com/

解析所有视频的ID

re.findall()

2.获取视频详情页

'''

importrequestsimport re #正则,用于解析文本数据

#1.往梨视频主页发送请求

respons = requests.get('https://www.pearvideo.com/')print(respons.text)#2.re正则匹配获取所有视频的ID#参数1:正则匹配规则

参数2:解析文本

参数3:匹配模式

res_list= re.findall('

for v_id inres_list:

detail_url= 'http://www.pearvideo.com/video_'+v_idprint(detail_url)#对每一个视频详情页发送请求获取视频源url

respons = requests.get(url=detail_url)

解析并提取视频url

video_url= re.findall('srcUrl="(.*?)"', respons.text, re.S)[0]print(video_url)#视频名称

video_name = re.findall('

(.*?)

V_response =requests.get(video_url)

with open('%s.mp4' %video_name, 'wb') as f:

f.write(V_response.content)print(video_name, '视频爬取完成')

'''

3.抓包分析

打开浏览器开发者模式(检查)->选中network

找到访问的页面后缀xxx.html(响应文本)

1)

请求url(访问的网站地址)

2)

请求方式:

GET:直接发送请求获取数据

https://www.cnblogs.com/kermitjam/articles/9692597.html

POST:需要携带用户信息发送到目标地址

https://www.cnblogs.com/login

3)响应状态码:

2xx:成功

3xx:重定向

4xx:找不到资源

5xx:服务器错误

4)请求头信息:

User_Agent:用户代理(证明是电脑设备及浏览器发送的请求)

Cookies:登录用户真实信息(证明你是目标网站的用户)

Referer:上一次访问的url(证明你是从目标网站跳转过来的)

5)请求体:

POST请求才会有请求体。

Form Data

{

'user':'tank',

'pwd':'123'

}

'''

'''

爬虫三部曲

1.发送请求

2.解析数据

3.保存数据

https://movie.douban.com/top250?start=0&filter=

https://movie.douban.com/top250?start=25&filter=

https://movie.douban.com/top250?start=50&filter=

四 爬取豆瓣电影

.: 从当前位置开始

*: 查找所有

?: 找到第一个不找

.*?: 非贪婪匹配

.*: 贪婪匹配

(.*?): 提取括号内的数据

电影排名、电影url、电影名称、导演-主演-类型、电影评分、评价人数、电影简介

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值