永济做网站单价,上海知名进出口贸易公司,我爱777在线观看,wordpress如何添加安装导航爬虫#xff1a;通过编写程序#xff0c;来获取获取互联网上的资源
需求#xff1a;用程序模拟浏览器#xff0c;输入一个网址#xff0c;从该网址获取到资源或内容
一、入门程序
#使用urlopen来进行爬取
from urllib.request import urlopen
url http://www.ba…爬虫通过编写程序来获取获取互联网上的资源
需求用程序模拟浏览器输入一个网址从该网址获取到资源或内容
一、入门程序
#使用urlopen来进行爬取
from urllib.request import urlopen
url http://www.baidu.com
resp urlopen(url)
# print(resp.read().decode(utf-8))
with open(mybaidu.html,modew,encodingutf-8) as f:f.write(resp.read().decode(utf-8))
print(over)
二、web请求过程剖析
1、服务器渲染
在服务器那边直接把数据和html聚合在一起统一返回给浏览器。
直观的现象就是查看网页源代码能拿到所有的页面内容。
eghttps://www.douban.com/note/809408645/?_i2050824ZzQJI3Y
2、客户端渲染
第一次请求只拿到html骨架第二次请求拿到数据然后客户端进行渲染。
直观的现象就是查看网页源代码看不到数据。
因此想要看到从哪个请求拿到的数据要熟练使用抓包工具。
eghttps://movie.douban.com/typerank?type_name%E5%96%9C%E5%89%A7type24interval_id100:90action 三、HTTP协议
协议就是两个计算机之间为了能够流畅的进行沟通而设置的一个君子协议常见的协议有TCP/IPSOAP协议SMTP协议.....
HTTP协议就是超文本协议作用为浏览器和服务器之间的数据交互遵守的协议
1、请求 1请求行请求方式(get/post)请求url地址协议 2请求头放一些服务器使用的附加信息。例如请求从哪来的或者一些反爬信息 3请求体请求参数 2、响应 1状态行协议 状态码 2响应头放一些客户端要使用的一些附加信息 3响应体服务器返回的真正客户端要用的内容(HTML,JSON)等 3、请求头中最常见的一些重要内容(爬虫需要) 1User-Agent请求载体的身份标识(用啥发送的请求) 2Refere防盗链(这次请求是从哪个页面来的反爬会用到) 3cookie本地字符串数据信息(用户登录信息反爬的token) 4、响应头中一些重要的内容 1cookie本地字符串数据信息(用户登录信息反爬的token) 2各种神奇的莫名其妙的字符串(这个需要经验了一般是token字样防止各种攻击和反爬) 5、常见的请求方式
GET查询东西的时候。所有在地址栏输入的url都是get请求
POST上传一些内容/对服务器的内容进行更改 四、Requests入门
安装pip install requests
需求1、爬取搜狗页面搜索薛之谦得到的页面内容
此处添加User-Agent处理一个简单的反爬
import requests
url https://www.sogou.com/web?query%E8%96%9B%E4%B9%8B%E8%B0%A6
headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0
}
# 所有在地址栏输入的url都是get请求
resp requests.get(url, headersheaders)
print(resp)
print(resp.text) #拿到页面源代码
resp.close()
需求2、拿到百度翻译联想词(post) 经过查看抓包发现这个请求为https://fanyi.baidu.com/sug import requests
url https://fanyi.baidu.com/sug
s input(输入你要翻译的英文单词)
data {kw: s
}
#发送post请求发送的数据必须放在字典中通过data进行传递
resp requests.post(url,datadata)
print(resp.json())#将服务器返回的内容直接处理为json() python中的字典 需求3、拿到豆瓣排行榜的数据(在第二次请求中返回数据)(get)
客户端渲染返回的数据一般在xhr中可以进行筛选。 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/126.0.0.0 Safari/537.36 Edg/126.0.0.0
}
resp requests.get(urlurl,paramsparam,headersheaders)
print(resp.request.url)
print(resp.json())
resp.close()