python 爬虫 1 (urllib、requests的使用、代理服务器)

写在前面

urllib:它是 Python 内置的 HTTP 请求库
Requests:也是HTTP 请求库,比urllib更易使用

Requests中文翻译文档

http://2.python-requests.org/zh_CN/latest/user/quickstart.html

1、urllib的使用

urllib的request模块可以非常方便地抓取URL内容

1.1、request.urlopen

①例如,对豆瓣的一个URLhttps://api.douban.com/v2/book/2129650进行抓取,并返回响应:

from urllib import request

with request.urlopen('https://api.douban.com/v2/book/2129650') as f:
    data = f.read()
    print('Status:', f.status, f.reason)
    for k, v in f.getheaders():
        print('%s: %s' % (k, v))
    print('Data:', data.decode('utf-8'))

在这里插入图片描述

② req.add_header ()例:
在这里插入图片描述

urllib的方法、属性 解释
f.read() 读取f的内容
f.status 状态码
f.reason 响应消息
f.getheaders() 获取f的头信息
req.add_header () 添加访问头信息

1.2、使用GET参数

在这里插入图片描述

1.3、使用POST传递参数

在这里插入图片描述

1.4、代理ip请求远程url

在这里插入图片描述

1.5、urlpase模块

urlparse模块主要是用于解析url中的参数 对url按照一定格式进行 拆分或拼接
在这里插入图片描述
在这里插入图片描述

2、requests的使用

安装

pip install requests

2.1、requests.get()

在这里插入图片描述
get请求带参数
在这里插入图片描述

2.2、requests.post()

在这里插入图片描述
requests其他请求方式


>>> r = requests.put('http://httpbin.org/put', data = {'key':'value'})
>>> r = requests.delete('http://httpbin.org/delete')
>>> r = requests.head('http://httpbin.org/get')
>>> r = requests.options('http://httpbin.org/get')

2.3、自定义headers

在这里插入图片描述

2.4、带cookies请求

在这里插入图片描述

2.5、Basic-auth认证请求

在这里插入图片描述

2.6、主动抛出状态码异常

在这里插入图片描述

2.7、session()

在这里插入图片描述

2.8、代理

在这里插入图片描述

3、代理服务器

这里我用文字加截图的形式,如果想要简介一点的教程可以参考
https://blog.csdn.net/weixin_41607151/article/details/80671649

用Xshell打开服务器,这里我服务器的系统是linux centos7

安装 tinyproxy:

 yum install tinyproxy

在这里插入图片描述
安装中间可能会问你yes or no 输入一个y就行

装完之后编辑配置文件:vim /etc/tinyproxy/tinyproxy.conf

在这里插入图片描述
使用vim的搜索功能,搜Allow:/Allow
在这里插入图片描述
显示行数:输入“:set number”回车
在这里插入图片描述
按键盘上的n可以向下查找Allow,这行一般在210行这儿
在这里插入图片描述
按键盘上的insert,然后输入一个#,把这行注释掉
在这里插入图片描述
找到23行的port
这里我的安全策略里面打开的是41801端口,所以我改成41801,然后保存并退出
在这里插入图片描述
不知道安全策略端口的看下图
在这里插入图片描述
重启服务:systemctl restart tinyproxy
在这里插入图片描述
打开日志:tail -f /var/log/tinyproxy/tinyproxy.log
在这里插入图片描述
使用之前先查看防火墙是否开放41801端口

firewall-cmd --zone=public --list-ports 查询开放状态
firewall-cmd --zone=public --add-port=41801/tcp --permanent  设置41801开放
firewall-cmd --reload

liunix环境下使用代理

在这里插入图片描述
windows下使用代理
在这里插入图片描述
在这里插入图片描述

发布了136 篇原创文章 · 获赞 30 · 访问量 7079

猜你喜欢

转载自blog.csdn.net/a__int__/article/details/104635535