python爬虫(一) |
|
P2P
L3
• 2020-11-15 • 回复 3 • 只看楼主
• 举报
|
今天简单讲一下爬虫
爬虫就是从网络上爬取(获取)数据例如音乐电影小说啥的
然后我们需要一个模块来辅助我们进行爬虫,首先打开pycharm,点击file→setting
点击加号搜索requests模块进行安装
这边简单的准备工作就好了,我们现在打开浏览器我用的是火狐
打开浏览器后按F12会跳出一个页面,然后我们按f5刷新一下会出来很多数据
在左边我们可以看到有一些方法,有post和get
常用的也就这两种请求,然后最左边有个200的数字,那个是状态码,2开头的就是正常的,有些人半夜打开某些电影网站的时候会出现404这个就是不正常的状态码,最后看到右边
User-Agent 就是用户信息,一般我们做爬虫,网站也会有相应的反爬,为啥要这样做,服务器也有上限,举个例子,一个房间睡两个人刚好,突然有100个人跑进这个房间是不是就挤不下了,同理别人做网页是给人服务的,肯定不希望被你爬,你一台电脑可以开多个线程,那他指定要崩,所以通常都要检测你的UA看看是不是浏览器发起的访问
其它的稍微了解一下就行Content-Type服务器返回客户端的数据类型 Connection请求完毕后保持连接还是断开连接
其实爬取数据就分四个步骤,首先要有一个url(网址)让我们去爬,第二向这个网址发送一个请求(拿到想要的数据),第三接收这个数据,最后储存数据以搜狗主页为例
requests.get可以填三个参数,第一个是网址第二个是规则,第三个是请求头
规则很好理解啊,就是你每次网页点一下那个网址都会产生一些变化,我们需要进行一些拼接,请求头就是上面说的UA
我们以百度为例,随便搜一个东西观察网址
我们可以发现网址很长,其中abc是搜索的内容wd应该就是关键字,前面那些删一点观察是不是同一个网页
我们开始写
import requests
if __name__ == '__main__':
# 让用户自己查询
word = input("请输入查询")
# 爬的网址
url = 'https://www.baidu.com/baidu?'
# requests.get的第二格参数:规则
param = {
'wd': word
}
#UA 判断是爬虫还是浏览器发送的请求
headers = {
'User-Agent':'???'
}
# requests.get请求
responce = requests.get(url=url,params=param,headers=headers)
# 3.获取数据 text返回的字符串的数据
page_text = responce.text
# 对爬取的内容进行命名
FM = word + '.html'
# 储存文件
with open(FM,'w',encoding='utf-8') as f:
f.write(page_text)
print('成功啦')
UA复制自己的就行了,有时间再更新 ??