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中内置的NotImplemented类型的用法
Mar 31 Python
python实现SMTP邮件发送功能
Jun 16 Python
Python程序包的构建和发布过程示例详解
Jun 09 Python
Python如何调用外部系统命令
Aug 07 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
python实现IOU计算案例
Apr 12 Python
python多进程使用函数封装实例
May 02 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
基于python实现模拟数据结构模型
Jun 12 Python
Jupyter notebook 输出部分显示不全的解决方案
Apr 24 Python
Django+Nginx+uWSGI 定时任务的实现方法
Jan 22 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通用分页类page.php[仿google分页]
2008/08/31 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
收集json解析的四种方法分享
2014/01/17 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
Vue header组件开发详解
2018/01/26 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
Python和Java进行DES加密和解密的实例
2018/01/09 Python
浅谈django orm 优化
2018/08/18 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
Python如何存储数据到json文件
2020/03/09 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
简单了解python列表和元组的区别
2020/05/14 Python
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
C语言笔试题回忆
2015/04/02 面试题
逻辑链路控制协议
2016/10/01 面试题
销售心得体会
2014/01/02 职场文书
学期研究性学习个人的自我评价
2014/01/09 职场文书
客服部班长工作责任制
2014/02/25 职场文书
服务质量承诺书
2014/03/27 职场文书
厂区绿化方案
2014/05/08 职场文书
媒体宣传策划方案
2014/05/25 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
话题作文之学会尊重
2019/12/16 职场文书
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL