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 相关文章推荐
关于你不想知道的所有Python3 unicode特性
Nov 28 Python
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
python获取当前计算机cpu数量的方法
Apr 18 Python
详解python开发环境搭建
Dec 16 Python
python实现图片处理和特征提取详解
Nov 13 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
使用Django连接Mysql数据库步骤
Jan 15 Python
利用ImageAI库只需几行python代码实现目标检测
Aug 09 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
python连接PostgreSQL过程解析
Feb 09 Python
详解Pytorch显存动态分配规律探索
Nov 17 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 图像函数大举例(非原创)
2009/06/20 PHP
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
JS实现继承的几种常用方式示例
2019/06/22 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
python机器学习实战之树回归详解
2017/12/20 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
管理专员自荐信
2014/01/26 职场文书
合作协议书范本
2014/04/17 职场文书
无犯罪记录证明
2014/09/19 职场文书
酒会开场白大全
2015/06/01 职场文书
董事长开业致辞
2015/07/29 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript