pip install requests
打开pycharm
安装成功会提示successfully
# coding=utf-8
import requests
url = "http://www.jd.com"
# 直接请求
res = requests.get(url)
# 获取响应体的内容
data = res.text
# 把结果打印出来(结合文件读取就可以爬取网页内容)
print(data)
运行结果
为什么要添加请求头呢,因为有些网页在你请求的时候会检查你是否有请求头,如果没有请求头,就不会返回正常的内容,下面我来验证
创建两个python文件test01,test02
# test01 内容如下
# coding=utf-8
import requests
url = "http://www.baidu.com"
# 直接请求
res = requests.get(url)
# 获取响应体的内容
data = res.text
print(data)
test01运行结果
test02
# test02 内容如下
# coding=utf-8
import requests
url = "http://www.baidu.com"
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
# 直接请求
res = requests.get(url, headers=header)
# 获取响应体的内容
data = res.text
print(data)
test02运行结果
# coding=utf-8
import requests
url = "http://www.baidu.com"
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
# 直接请求
res = requests.get(url=url, params=params, headers=header) # 直接在这里添加上面的定义的参数即可
# 获取响应体的内容
data = res.text
print(data)
# coding=utf-8
import requests
url = "http://www.baidu.com"
# 请求头
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 直接请求
res = requests.get(url=url, params=params, headers=header)
# 获取响应体的内容
data = res.text
print(data)
# 如果乱码,可以设置响应数据的编码
print(res.content.decode("utf-8"))
# coding=utf-8
import requests
url = "http://www.gxaedu.com"
# 请求头
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 请求参数
params = {
'id': 10
}
# 直接请求
res = requests.get(url=url, params=params, headers=header)
# 查看完整的请求URL
print(res.url)
# 查看响应头编码
print(res.encoding)
# 查看响应状态码
print(res.status_code)
有些网页要登录之后才能看到内容,所以要先注册一个账户,登录之后拿到自己的cookie去进行下一步操作
# coding=utf-8
import requests
url = "http://www.baidu.com"
# 请求头
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 请求参数(网页有参数采用参数,视具体情况来的)
params = {
'id': 10
}
# 直接请求
res = requests.get(url=url, params=params, headers=header)
# 查看完整的请求URL
print(res.url)
# 查看响应头编码
print(res.encoding)
# 查看响应状态码
print(res.status_code)
# 获取响应cookie
cookie_data = list(res.cookies)
# 遍历获取cookie值
for cookie in cookie_data:
print(cookie.value)
和get一致,只是方法名字变成了post
# coding=utf-8
import requests
url = "http://www.baidu.com"
# 请求头
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 请求参数
data = {
'wd': 'python'
}
# 直接请求
res = requests.post(url=url, headers=header, data=data)
# 查看完整的请求URL
print(res.url)
# 查看响应头编码
print(res.encoding)
# 查看响应状态码
print(res.status_code)
# 获取响应数据
print(res.content.decode("utf-8"))
请求时,先将请求发给代理服务器,代理服务器请求目标服务器,然后目标服务器将数据传给代理服务器,代理服务器再将数据给爬虫。
直接请求:
# coding=utf-8
import requests
# 测试回显IP的地址
url = "http://httpbin.org/ip" # 这个网址可以返回自己的ip
# 请求头
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 直接请求
res = requests.get(url=url, headers=header)
print(res.text)
结果:显示的是自己的IP
{
"origin": "xxx.xxx.xx.x"
}
利用代理请求:
# coding=utf-8
import requests
# 测试回显IP的地址
url = "http://httpbin.org/ip"
# 请求头
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 使用代理
proxy = {
# 准备的代理地址
'http': 'http://xxx.xxx.xxx.xxx:端口号',
'https': 'http://xxx.xxx.xxx.xxx:端口号'
}
# 直接请求
res = requests.get(url=url, proxies=proxy, headers=header)
print(res.text)
后续就可以进行简单的爬虫了,这个我会持续更新的