爬虫python入门_python之路pdf

爬虫python入门_python之路pdfProxyHandler代理器在写爬虫时常常需要做代理IP以反爬虫常用IP有:西刺免费代理:xicidaili.com/nt/快代理:http://kuaidaili.com/代理云:http://dailiyun.com/查看代理的IP:http://www.httpbin.org/ip网站:http://www.httpbin.org/可查看http的一些参数。#检查当前ip…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

ProxyHandler代理器
在写爬虫时常常需要做代理IP以反爬虫
常用IP有:
西刺免费代理:xicidaili.com/nt/
快代理:http://kuaidaili.com/
代理云:http://dailiyun.com/
在这里插入图片描述查看代理的IPhttp://www.httpbin.org/ip
网站http://www.httpbin.org/可查看http的一些参数。

#检查当前ip

from urllib import request,parse
url="http://httpbin.org/ip"
resp=request.urlopen(url)
print(resp.read())

代理的原理:先访问代理服务器,利用代理服务器去访问目标网站,然后再将访问结果返回给自己。
步骤:
1.使用ProxyHandler{“类型”:“ip:端口”}创建一个hander
2.利用创建的handler创建一个opener
3.利用opener发送请求 #其实,urlopen的底层就是一个如此的操作。
代码如下:

handler=request.ProxyHandler({ 
   "http":"112.95.205.49:8888"})
opener=request.build_opener(handler)
resp=opener.open(url)
print(resp.read())

结果:
b’{\n “origin”: “60.222.112.195”\n}\n’ #原IP
b’{\n “origin”: “60.222.112.195, 112.95.204.217”\n}\n’ #代理IP

cookie
在网站中,对服务器的使用往往需要认证,第一次访问服务器后,服务器返回一个cookie,以确保第二次访问无需认证。cookie一般不超过4kb。
代码如下,使用cookie可以实现登录账户。
方法一:在headers加入网页的cookie信息

aji_url="http://www.renren.com/973687886/profile"
headers=({ 
   "User-Agent":" Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36",
"Cookie": "anonymid=k6hu8cnocon7sq; 删除部分代码39c126ca7%7C1581428091545%7C1%7C1581428091771; jebecookies=6f157d36-8a56-4d80-b00e-5b56897c858e|||||; t=af9ce0986e484e427bb7eb4c8e9e3ed56; societyguester=af9ce0986e484e427bb7eb4c8e9e3ed56; xnsid=c90db889; loginfrom=null; wp_fold=0"
})
req=request.Request(url=aji_url,headers=headers)
resp=request.urlopen(req)
print(resp.read().decode("utf-8"))

方法二

from http.cookiejar import CookieJar
headers = ({

“User-Agent”: ” Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36″})
def get_opener():
# 创建一个cookiejar
cookiejar = CookieJar()
# 使用cookiejar创建一个HTTPCookieProcessor对象
handler = request.HTTPCookieProcessor(cookiejar)
# 使用handler创建一个opener
opener = request.build_opener(handler)
return opener
def login_renren(opener):
#登录人人网

data = ({"email": "13537703610",
     "password": "510548134ys"})
login_url = "http://www.renren.com/SysHome.do"
req = request.Request(url=login_url, data=parse.urlencode(data).encode("utf-8"), headers=headers)
opener.open(req)

def visit_renrne(opener):
# 访问个人网页
aji_url = “http://www.renren.com/973687886/profile”
req = request.Request(aji_url, headers=headers) # 使用之前新建的opener,已经有登录信息
resp = opener.open(req)
with open(r”C:\python38\new project\mydi\ren.txt”, “w”, encoding=“utf-8”)as fp:
fp.write(resp.read().decode(“utf-8”))
if name == ‘main’:
opener=get_opener()
login_renren(opener)
visit_renrne(opener)
cookie之保存 cookie保存到本地****可以方便再次查看
from urllib import request
from http.cookiejar import MozillaCookieJar

cookiejar = MozillaCookieJar(“cookie.txt”)
handler = request.HTTPCookieProcessor(cookiejar)
opener = request.build_opener(handler)

resp=opener.open(“https://www.baidu.com/”)
cookiejar.save()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164738.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月28日 上午7:16
下一篇 2022年7月28日 上午7:36


相关推荐

  • 增强for循环的语法_增强for循环原理

    增强for循环的语法_增强for循环原理一、概述:也成为【foreach】循环,是JDK1.5版本以后出来的一个高级for循环,专门用来遍历数组和集合的,它的内部原理其实就是iterator迭代器,所以在遍历过程中,不能对集合的元素进行增删操作。二、格式for(元素的数据类型变量名:数组名/集合名{}三、代码演示publicstaticvoidmain(String[]args)…

    2025年7月10日
    5
  • 用计算机套路别人,套路计算器隐藏版[通俗易懂]

    用计算机套路别人,套路计算器隐藏版[通俗易懂]套路计算器隐藏版是款非常适合撩妹的神器,各种整蛊玩法,套路你的女朋友,操作简单,不需要root免费使用,轻松的哄女朋友开心。套路计算器隐藏版特色1.在这里都可以跟你的好友们设定任何的计算套路。2.在使用的时候看起来就跟普通的计算器应用差不多。3.他的套路秘诀就在输入计算结果之后,会显示提前设定的文字。4.各种的文章内容都可以设定到计算里面。套路计算器隐藏版怎么用进入的先设置好内容,进入后打开的都是…

    2022年6月9日
    140
  • 插值算法及matlab实现,MATLAB 插值算法实现

    插值算法及matlab实现,MATLAB 插值算法实现1.高斯插值functionf=Gauss(x,y,x0)if(length(x)==length(y))n=length(x);elsedisp(‘x和y的维数不相等!’);return;endxx=linspace(x(1),x(n),(x(2)-x(1)));if(xx~=x)disp(‘节点之间不是等距的!’);return;endif(mod(n,2)==1)if…

    2022年5月31日
    36
  • Docker 1.3 公布

    Docker 1.3 公布

    2022年2月6日
    43
  • pycharm闪退问题(出现out of memory错误后,修改值后打不开)

    pycharm闪退问题(出现out of memory错误后,修改值后打不开)错误 在 pycharm 出现 outofmemory 后 修改值后 pychrm 一直闪退方法一 修改 vmoptions 文件 安装 pycharm 的目录下参考链接 https blog csdn net Late whale article details 反馈 尝试后无论怎么修改值都仍然无法打开方法二 修改 vmoptions 文件 C 盘下注意 在 c 盘搜索 vmpotions 扩展名的文件 如果你在 pycharm 安装路径里面找的话 你只能在 bin 文件里找到 pycharm64 e

    2026年3月27日
    3
  • Python标准库 (pickle包,cPickle包)

    Python标准库 (pickle包,cPickle包)在之前对Python对象的介绍中(面向对象的基本概念,面向对象的进一步拓展),我提到过Python“一切皆对象”的哲学,在Python中,无论是变量还是函数,都是一个对象。当Python运行时,对象存储在内存中,随时等待系统的调用。然而,内存里的数据会随着计算机关机和消失,如何将对象保存到文件,并储存在硬盘上呢? 计算机的内存中存储的是二进制的序列(当然,在Linux眼中,是文本流)。我们…

    2022年4月20日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号