Python实现自动访问网页的例子


Posted in Python onFebruary 21, 2020

我就废话不多说了,直接上代码吧!

import urllib.request
import requests
import time
import ssl
import random

def openUrl(ip, agent):
 headers = {'User-Agent': agent}
 proxies = {'http' : ip}
 requests.get("https://www.baidu.com", headers=headers, proxies=proxies, verify=True)
 ssl._create_default_https_context = ssl._create_unverified_context
 print("Access to success.")

#IP池
#IP来源:
# http://www.xicidaili.com/
# https://www.kuaidaili.com/free/
def randomIP():
 ip = random.choice(['120.78.78.141', '122.72.18.35', '120.92.119.229'])
 return ip

#User-Agent
#User-Agent来源:http://www.useragentstring.com/pages/useragentstring.php
def randomUserAgent():
 UserAgent = random.choice(['Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36',
        'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36'])
 return UserAgent

if __name__ == '__main__':
 for i in range(10):
  ip = randomIP()
  agent = randomUserAgent()
  openUrl(ip, agent)
  time.sleep(1)

补充拓展:Python模拟浏览器实现网页访问方式

模拟浏览器请求数据:

import socket

# 创建TCP链接
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# DNS 解析和链接HTTP服务器
tcp_socket.connect(("www.qq.com", 80))

# 编写请求头, 发送HTTP请求报文
# 请求行
request_line = "GET / HTTP/1.1\r\n"
# 请求头,设置请求域名
request_header = "www.qq.com\r\n"
request_data = request_line + request_header + "\r\n"

# 发送请求
tcp_socket.send(request_data.encode("utf-8"))
# 接收响应报文,指定长度
response_data = tcp_socket.recv(4096)
# 对响应报文进行解析 --切割
response_str_data = response_data.decode("utf-8")
print(response_data)
# "\r\n\r\n" 之后的数据就是响应体数据
index = response_str_data.find("\r\n\r\n")
# 切割出的数据就是文件数据
html_data = response_str_data[index+4:]
# 在当前路径下新建文件存储响应数据
with open("index.html", "wb") as file:
 file.write(html_data.encode())
# 关闭套接字
tcp_socket.close()

以上这篇Python实现自动访问网页的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python查找目录下指定扩展名的文件实例
Apr 01 Python
Python中的各种装饰器详解
Apr 11 Python
python开启多个子进程并行运行的方法
Apr 18 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
使用pip安装python库的多种方式
Jul 31 Python
python爬虫 基于requests模块的get请求实现详解
Aug 20 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
Python 实现将数组/矩阵转换成Image类
Jan 09 Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 Python
Python中的变量与常量
Nov 11 Python
Python first-order-model实现让照片动起来
Jun 25 Python
解决Python pip 自动更新升级失败的问题
Feb 21 #Python
python利用百度云接口实现车牌识别的示例
Feb 21 #Python
在python3中实现更新界面
Feb 21 #Python
Python要如何实现列表排序的几种方法
Feb 21 #Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 #Python
使用Python打造一款间谍程序的流程分析
Feb 21 #Python
python实现堆排序的实例讲解
Feb 21 #Python
You might like
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
PHP CURL使用详解
2019/03/21 PHP
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
懒加载实现的分页&&网站footer自适应
2016/12/21 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
详解Python自建logging模块
2018/01/29 Python
Python从零开始创建区块链
2018/03/06 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
电子信息专业学生自荐信
2013/11/09 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技