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解析xml成对应的html示例分享
Apr 02 Python
Python中统计函数运行耗时的方法
May 05 Python
Python实现简单的四则运算计算器
Nov 02 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
对python中两种列表元素去重函数性能的比较方法
Jun 29 Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
Dec 05 Python
python 实现调用子文件下的模块方法
Dec 07 Python
对Python的交互模式和直接运行.py文件的区别详解
Jun 29 Python
python datetime中strptime用法详解
Aug 29 Python
Python迷宫生成和迷宫破解算法实例
Dec 24 Python
Python Pivot table透视表使用方法解析
Sep 11 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读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
php格式文件打开的四种方法
2018/02/24 PHP
php新建文件的方法实例
2019/09/26 PHP
javascript 类方法定义还是有点区别
2009/04/15 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python中的ctime()方法使用教程
2015/05/22 Python
python动态网页批量爬取
2016/02/14 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
Django中的文件的上传的几种方式
2018/07/23 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
夏季奶茶店创业计划书
2014/01/16 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
Vue详细的入门笔记
2021/05/10 Vue.js