使用代理ip进行反反爬虫——爬取句子迷网站,获取小说龙族经典句子

news/2024/5/8 12:12:10/文章来源:https://blog.csdn.net/whimewcm/article/details/89575946

这个爬虫实践做了好久了,不定期更新,遭遇了反爬虫,记录一下反反爬过程。

  • 爬取不到一会就会被封ip,网站返回403,换个ip就好了,但一样会被封,来不及爬取所有句子。

  • 参照网上免费代理ip的方式
    不过这个方法爬去下来的proxy拿来访问别的网站可行,但是访问句子迷就403了,估计没有多少个可用的。

    在此引用代码,感谢作者。

import requests
import os
from bs4 import BeautifulSoupheaders = {'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36'}
url = 'http://www.xicidaili.com/nn/1'
s = requests.get(url,headers = headers)
soup = BeautifulSoup(s.text,'lxml')
ips = soup.select('#ip_list tr')
fp = open('host.txt','w')
for i in ips:try:ipp = i.select('td')ip = ipp[1].texthost = ipp[2].textfp.write(ip)fp.write('\t')fp.write(host)fp.write('\n')except Exception as e :print ('no ip !')
fp.close()url = 'https://www.github.com'
fp = open('host.txt','r')
ips = fp.readlines()
proxys = list()
for p in ips:ip =p.strip('\n').split('\t')proxy = 'http:\\' +  ip[0] + ':' + ip[1]proxies = {'proxy':proxy}proxys.append(proxies)
for pro in proxys:try :s = requests.get(url,proxies = pro)print (s)except Exception as e:print (e)

另一种实现方式,自己加了可用性测试,效果也不好。来源

def get_ip_list(url, headers):web_data = requests.get(url, headers=headers)soup = BeautifulSoup(web_data.text, 'lxml')ips = soup.find_all('tr')ip_list = []for i in range(1, len(ips)):ip_info = ips[i]tds = ip_info.find_all('td')ip_list.append(tds[1].text + ':' + tds[2].text)print(ip_list)print("\n")#可用性测试new_ip_list=[]for ip in ip_list:try:req=requests.get('https://www.baidu.com',proxies={'proxy':'http://'+ip})new_ip_list.append(ip)# print("ok")except Exception as e:print(e)print(new_ip_list)return new_ip_list
#获取代理ip列表headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'}
ipList=get_ip_list('http://www.xicidaili.com/nn/1',headers=headers)def get_random_proxies(ipList):proxy_list = []for ip in ipList:proxy_list.append('http://' + ip)proxy_ip = random.choice(proxy_list)proxies = {'https': proxy_ip}return proxies
......
  • 使用付费代理阿布云,不用自己搭建ip池,还有免费测试机会,不过会限制每秒请求数。(不知道是不是新注册用户的原因)
    阿布云http隧道动态版,每次请求返回一个随机ip,正是我想要的。这一篇博客讲的很详细了。
    我使用的就是免费测试的机会,毕竟只是几个页面(qiong)。
    结果就是不能使用多线程,会限制请求数。
    在这里插入图片描述
    最后由于chunked编码问题异常,直接跳过的页面也不是很多,还能接受,暂时先这样吧。至于里面一些需要处理的空格换行和不规则的缩进问题属于数据清洗的范畴了。
    在这里插入图片描述
    欢迎到我的项目地址下载源码和txt文件,给个star。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_735345.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

沙盒单机网站代表-Steam【推荐】

Steam平台是Valve公司聘请BitTorrent(BT下载)发明者布拉姆科恩亲自开发设计的游戏平台。Steam平台目前是一款全球最大的综合性数字发行平台。玩家可以在该平台购买、下载、讨论、上传和分享游戏和软件。👌,没有十足的抵抗力和小康的生活水平千万别触碰St…

java struts2国际化代码下载_struts2的国际化实现网站整体中英文切换实例代码

本文介绍了struts2的国际化实现网站整体中英文切换实例代码,分享给大家,具体如下:环境要求:struts2框架环境搭建成功为了实现程序的国际化,必须先提供程序所需要的资源文件。资源文件的内容基本是key-value对&#xff…

mysql-pius代码生成网站_MyBatis-Plus系列之代码生成器

代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类、映射文件和接口。这和hibernate的自动建表恰好相反。很早之前,写了一个代码生成器的工程,自己也一直在用,很方便,也经过…

网站自动登录功能的设计

我相信有很多IT者都会遇到公司要求网站可以实现自动登录,那什么是自动登录呢? 所谓自动登陆就是当用户第一次访问网站时,输入用户名和密码,然后勾选了自动登陆复选框,进入首页后,点击退出登陆,关…

关闭宝塔80端口_服务器网站运行宝塔环境安装教程

宝塔环境安装本教程使用宝塔linux面板来作为网站的运行环境,其他的这类软件也是可以的。首先是宝塔面板的安装我们首先连接到服务器,购买服务器后如何远程连接登陆?然后登陆进入了下图这个界面。宝塔环境安装我们打开宝塔面板的官方网站&…

数据包发送时 源端口是随机生成的吗_当你访问XXX网站时,从访问到内容返回呈现,中间发生了什么?...

想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题。这次,小林我带大家一起探究下,一个数据包在网络中的心路历程。每个阶段都有数据包的「心路历程」,我们一起看看它说…

设计电子商务网站建设方案_如何做一份公司网站建设方案书

点击蓝字获取更多优惠信息在决定做好网站建设前,公司应该先对市场情况进行分析、明确建设网站的目的和功能性,并根据市场调查结果对网站建设的各项要求要点做出规划。网站规划对网站建设起到计划和指导的作用,对网站的内容和维护起到定位作用…

网站改成静态页面打不开_网站优化系统诊断和SEO体验

在做企业网站优化时,常遇到很多的问题,比如网站原创内容不收录,收录后没有排名,有排名却怎么也排不到首页等。所以就需要我们系统的对企业网站优化做一个很好的诊断,帮助我们调整网站细节,更好的提高网站权…

您与此网站之间建立的连接并非完全安全 ????

有时候即使SSL证书有效, Chrome还是显示"并非完全安全"?比如: 肿么肥事呢?原来一个网页不完全由1个https包得到的, 而是由多个资源共同组成的,打开网络工具就可以看到: 在Size那一列, 只有第1个资源(通常是html)是不会走缓存的,这个资源也来自浏览器地址栏里面所看…

tp5网站上传服务器,tp5上传到云服务器

tp5上传到云服务器 内容精选换一换本章节以Linux操作系统为例,指导您通过弹性云服务器内网连接GaussDB(for Cassandra)实例。您可以根据业务需求选用普通方式或SSL方式连接实例。目标实例必须与弹性云服务器在同一个虚拟私有云和子网内才能访问。该弹性云服务器必须…

基于Java/Mysql的个人博客网站

3年前写的一个技术博客。。。纪念一下。 OpenIdea Blog - 开源灵感博客 a personal blog site based on Java/Mysql - 基于Java/Mysql的个人博客网站;此时已经更新至version23.1;这是一个java web博客项目,尽最大可能实现mvc模式,没有使用到框架&#xf…

一个博客网站的历史纪录。。。

上一篇文章用MySQL实现了一个个人博客网站,本文是它各个版本的历史记录,在删除源代码之前,最后回忆一下这个项目的历史。2017-09-02【0.0】博客诞生2017-09-02【0.0】测试阶段:阿里云vps成功内测前端模板2017-09-09【0.0】测试阶段:服务器重定…

云服务器建站原理_第一篇博客---阿里云服务器建站过程(小菜鸟的第一次尝试)...

最近学习了前后端的相关技术,就想租一个服务器试一下,玩一玩,简单了解了一下阿里云的服务器,简单介绍一下:一:什么是云服务器ECS是阿里云产品体系中,最基础的计算服务,通常用作应用程序的运行环…

哈尔滨网站服务器_哈尔滨web前端开发应用越来越广泛

互联网发展日新月异,有大量工作需要前端来做:1日常办公软件(复杂应用,并且慢慢从桌面程序演化为Web):Office、Email、文档管理、产品设计、项目管理、代码编辑器;2大数据/AI配套软件(复杂应用,并且慢慢从桌…

计算机组成二进制除法,二进制算术运算-计算机组成原理与汇编语言-电子发烧友网站...

1.4.1 二进制加法二进制加法与十进制加法相类似,所不同的是,二进制加法中是“逢二进一”,其法则为:000101011110 并进位例如:两个二进制数相加:10110101 10001110______________1010000111.4.2 二进制减法在…

java soap服务_「java调用webservice」java调用webservice接口 三种方法 - seo实验室

java调用webservice摘自其它:webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。今天搜索到了非常好的 webservice provider列表http://www.webserv…

搜索引擎优化的用乐云seo_SEO搜索引擎优化是否真的那么重要?

SEO搜索引擎优化是优化网页及其内容的过程,以便用户搜索与您的网站相关的词条并轻松地发现它们。尽管SEO搜索引擎优化的概念相对简单明了,但是仍然还是有很多企业对具体问题存有疑问,例如:如何“优化”网站或公司的搜索引擎网站&a…

内容泛化是什么意思_网站优化|为什么做了SEO优化 网站却没有排名?

即使你在SEO行业,有着几年的工作经验,你偶尔也会有这样的疑问,我长期的坚持写高质量内容,但有的时候,针对某些网站,它的排名就是上去。这让很多SEO人员,一度在怀疑自己的优化策略,是…

计算机登录网站慢手机快,手机WiFi网速慢,简单输入几个数字立马变快!

原标题:手机WiFi网速慢,简单输入几个数字立马变快!微言∶“用手机连家里的WiFi上网也是很普遍的一件事了。可是有时候,电脑网速是正常的,可手机连上的WiFi却很慢,这到底是什么原因呢?”相信很多微友都有遇过类似的情况,和朋友连接…

服务器弄好了怎么做网站,怎么自己做网站?自己做网站都需要什么?

怎么自己做网站?自己做网站都需要什么?免费建站有哪些流程及步骤,想必我们想做网站的朋友都有这样的疑问吧!下面就和小编来一起看看吧!1、网站程序网站程序必需的,能够自身撰写或是是业务外包请人做,搞好以后能够授权委托构建网站&#xff…