一个很水的Python代码分析
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容主要讲解"一个很水的Python代码分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"一个很水的Python代码分析"吧!# _ * _编码:UT
千家信息网最后更新 2025年01月19日一个很水的Python代码分析
本篇内容主要讲解"一个很水的Python代码分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"一个很水的Python代码分析"吧!
# _ * _编码:UTF-8 _ * _"""xianhu的python_spider.py"""导入请求import urllib.errorimport urllib.parseimport urllib.request导入 http.cookiejar
第一段
#首先定义下边可能需要的变量url = " https://www.baidu.com "headers = { " User-Agent ":" Mozilla / 4.0(兼容; MSIE 5.5; Windows NT)" }#最简单的网页抓取方式response = urllib.request.urlopen(url,timeout = 10)html = response.read()。decode(" utf-8 ")#使用请求实例代替网址request = urllib.request.Request(url,data = None,headers = {})response = urllib.request.urlopen(request,timeout = 10)
第二段
#发送数据,即在请求()中添加数据参数data = urllib.parse.urlencode({ " act ":" login "," email ":" xianhu@qq.com "," password ":" 123456 " })request1 = urllib.request.Request(URL,数据=数据) # POST方法请求2 = urllib.request.Request(URL + "?%S " %数据) # GET方法response = urllib.request.urlopen(request,timeout = 10)#发送报头,即在请求()中添加报头参数request = urllib.request.Request(url,data = data,headers = headers) #参数中添加header参数request.add_header(" Referer "," http://www.baidu.com ") #另一种添加header的方式,添加Referer是为了应对"反盗链"response = urllib.request.urlopen(request,timeout = 10)
第三段
#网页抓取引发异常:urllib.error.HTTPError,urllib.error.URLError,两者存在继承关系尝试: urllib.request.urlopen(request,timeout = 10)除了 urllib.error.HTTPError 为 e: 打印(e.code,e.reason)除了 urllib.error.URLError 为 e: 打印(e.errno,e.reason)#使用代理,以防止IP被封或IP次数受限:proxy_handler = urllib.request.ProxyHandler(proxies = { " http ":" 111.123.76.12:8080 " })opener = urllib.request.build_opener(proxy_handler) #利用代理创建opener实例响应= opener.open(URL) #直接利用开启器实例打开URLurllib.request.install_opener(opener) #安装全局opener,然后利用urlopen打开网址response = urllib.request.urlopen(url)
第四段
#使用饼干和cookiejar,应对服务器检查cookie_jar = http.cookiejar.CookieJar()cookie_jar_handler = urllib.request.HTTPCookieProcessor(cookiejar = cookie_jar)opener = urllib.request.build_opener(cookie_jar_handler)response = opener.open(url)#发送在浏览器中获取的饼干,两种方式:#(1)直接放到headers里headers = { " User-Agent ": " Mozilla / 4.0(兼容; MSIE 5.5; Windows NT)", " Cookie ": " PHPSESSID = btqkg9amjrtoeev8coq0m78396; USERINFO = n6nxTHTY%2BJA39z6CpNB4eKN8f0KsYLjAQTwPe%2BhLHLruEbjaeh5ulhWAS5RysUM%2B; "}request = urllib.request.Request(url,headers = headers)#(2)构建cookie,添加到cookiejar中cookie = http.cookiejar.Cookie(name = " xx ",value = " xx ",domain = " xx ",...)cookie_jar.set_cookie(饼干)response = opener.open(url)
#同时使用代理和cookiejaropener = urllib.request.build_opener(cookie_jar_handler)opener.add_handler(proxy_handler)response = opener.open(" https://www.baidu.com/ ")#抓取网页中的图片:同样适用于抓取网络上的文件右击鼠标,找到图片属性中的地址,然后进行保存。response = urllib.request.urlopen(" http://ww3.sinaimg.cn/large/7d742c99tw1ee7dac2766j204q04qmxq.jpg ",超时= 120)使用 open(" test.jpg "," wb ")作为 file_img: file_img.write(response.read())# HTTP认证:即HTTP身份验证password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm() #创建一个PasswordMgrpassword_mgr.add_password(realm = None,uri = url,user = ' username ',passwd = ' password ') #添加用户名和密码handler = urllib.request.HTTPBasicAuthHandler(password_mgr) #创建HTTPBasicAuthHandleropener = urllib.request.build_opener(handler) #创建opnerresponse = opener.open(url,timeout = 10) #获取数据#使用套接字代理进口袜子导入套接字socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5," 127.0.0.1 ",1080)socket.socket = socks.socksocketrequests.get(" http://www.baidu.com/s?ie=utf-8&wd=ip ")
到此,相信大家对"一个很水的Python代码分析"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
数据
参数
代理
代码
分析
实例
方式
方法
网页
饼干
内容
图片
套接字
报头
网址
学习
实用
更深
代理进口
全局
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
部门内部网络安全自查表
软件开发 精细化
软件开发ppt介绍
远程无线网络安全
web并发修改数据库
淘宝上买东西提示服务器忙
苏州对日软件开发公司有哪些
湖南神机妙算网络技术有限公司
成都哪个软件开发培训好
北邮网络安全专业分数线山东
江苏电商软件开发哪家实惠
计算机网络技术a 哪本书
C语言和网络安全结合
科密指纹考勤机导出数据库
怎样使用阿里巴巴数据库
emobile服务器
股票软件开发合同
网络安全工作的指示
数据库外包服务调研
中遣互联网络科技有限公司
青岛万达cbd软件开发公司
公式里锁定引用的数据库
服务器系统报价
数据库可视化管理师
软件开发相关大学
电脑打印服务器怎么选
山东服务器维保厂商云空间
数据库中外键和外码
无锡宝坤互联网科技有限公司
android数据库封装