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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值