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赋值操作方法分享
Mar 23 Python
在Python的Django框架中创建语言文件
Jul 27 Python
教你用Type Hint提高Python程序开发效率
Aug 08 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
python笔记:mysql、redis操作方法
Jun 28 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
Python动态赋值的陷阱知识点总结
Mar 17 Python
Django为窗体加上防机器人的验证码功能过程解析
Aug 14 Python
Python迭代器iterator生成器generator使用解析
Oct 24 Python
为什么说python适合写爬虫
Jun 11 Python
python获得命令行输入的参数的两种方式
Nov 02 Python
OpenCV-Python实现人脸美白算法的实例
Jun 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
基于mysql的论坛(5)
2006/10/09 PHP
详解PHP数组赋值方法
2015/11/07 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
python BeautifulSoup使用方法详解
2013/11/21 Python
python正则表达式re模块详解
2014/06/25 Python
python中 logging的使用详解
2017/10/25 Python
python多线程抽象编程模型详解
2019/03/20 Python
python3通过selenium爬虫获取到dj商品的实例代码
2019/04/25 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
浅析matlab中imadjust函数
2020/02/27 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
Ruby如何进行文件操作
2014/07/17 面试题
网络工程师的自我评价
2013/10/02 职场文书
学习党章思想汇报
2014/01/07 职场文书
个人自我剖析材料
2014/02/07 职场文书
学生检讨书怎么写
2014/10/09 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android