爬虫第一步就是请求了,请求模块一般是requests和urllib,而requests是现在最常用的,基本都是用这个了。
安装
requests:
然后回车就行。
基本用法
举个例子,比如我们想爬百度
import requests # 导入requests请求库
response = requests.get('https://www.baidu.com/') # 因为百度的请求方式是get,所以我们这里用get方式获取
print(response)
回车后他会返回一个
<Response [200]>
200就是成功的意思,可以爬,如果返回的是其他的数字就是失败了。
接着
import requests
response = requests.get('https://www.baidu.com/')
print(response.text)
我们在print里面的response后面点上一个text,就是打印文本,回车后就能把这个网页的源代码打印出来。但是我们会发现
这啥玩意,中文呢?? 这是在爬虫中经常出现的问题,这是乱码,解决他很简单。我们仔细看
这里有个utf-8,utf-8是一种编码格式,我们修改一下代码
import requests
url = 'https://www.baidu.com/'
jiema = requests.get(url).content.decode('utf-8')
print(jiema)
然后再回车就会发现
出现中文了!
有一些网站是请求方式是post、put、delete、head、options。那么,这些网站怎么用requests把它爬下来呢?
我们只需要把get换成相对于的请求方式就行了
a1 = requests.post(url)
a2 = requests.put(url)
a3 = requests.delete(url)
a4 = requests.head(url)
a5 = requests.options(url)
在url中传递参数
举个例子,如果你想传递 key1=value1和
key2=value2
,httpbin.org/get你可以使用下面的代码:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://httpbin.org/get', params=payload)
json
json解码的话一般是
response = requests.get(url)
response.json()
在get的下一行加上一个点json()就行。