首先题目所说的并不是目的,本文主要是为了更详细的了解网站的反爬机制。而真的想要更高的阅读量还是需要有真正优质的才可以达到的。
1. 通过Headers反爬虫
从用户请求的Headers反爬虫是最常见的反爬虫策略。很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。
如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名。对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过。
2. 基于用户行为反爬虫
还有一部分网站是通过检测用户行为,例如同一IP短时间内多次访问同一页面,或者同一账户短时间内多次进行相同操作。
大多数网站都是前一种情况,对于这种情况,使用IP代理就可以解决。我们可以将代理IP检测之后保存在文件当中,但这种方法并不可取,代理IP失效的可能性很高,因此从专门的提供代理ip的商家购买代理是个比较好的方法。
对于第二种情况,可以在每次请求后随机间隔几秒再进行下一次请求。有些有逻辑漏洞的网站,可以通过请求几次,退出登录,重新登录,继续请求来绕过同一账号短时间内不能多次进行相同请求的限制。
还有针对cookies,通过检查cookies来判断用户是否是有效用户,需要登录的网站常采用这种技术。更深入一点的还有,某些网站的登录会动态更新验证,
4. 限定某些IP访问
的代理IP可以从很多网站获取到,既然爬虫可以利用这些代理IP进行网站抓取,网站也可以利用这些代理IP反向限制,通过抓取这些IP保存在服务器上来限制利用代理IP进行抓取的爬虫。
好了,现在实际操作一下,编写一个通过代理IP访问网站的爬虫。
首先获取代理IP,用来抓取。
def Get_proxy_ip():
headers = {
'Host': 'www.16yun.cn.',#亿牛云优质代理#
'User-Agent':'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',
'Accept': r'application/json, text/javascript, */*; q=0.01',
'Referer': r'http://www.xicidaili.com/', }
req = request.Request(r'http://www.16yun.cn/nn/', headers=headers) #亿牛云优质代理=
response = request.urlopen(req)
html = response.read().decode('utf-8')
proxy_list = []
ip_list = re.findall(r'\d+\.\d+\.\d+\.\d+',html)
port_list = re.findall(r'<td>\d+</td>',html)
for i in range(len(ip_list)):
ip = ip_list[i]
port = re.sub(r'<td>|</td>', '', port_list[i])
proxy = '%s:%s' %(ip,port) proxy_list.append(proxy) return proxy_list
经过测试,访问的成功率还是很高的,提高访问成功率的关键点在于选择优质代理。以上只是浅显的分享。
分享到:
相关推荐
根据实际需求,还可以考虑添加更多字段,如分类、阅读量等。在数据库操作时,为了提高效率,可以批量插入数据,避免频繁的数据库交互。 在实现爬虫的过程中,我们还需要注意反爬策略。CSDN等网站可能会有防爬机制,...
网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐 权重衰减进行用户兴趣标签权重的衰减,避免内容推荐的过度...
【Python爬虫源码实例——京东评论爬虫详解】 在Python编程领域,网络爬虫是一项重要的技术,它能帮助我们自动地从互联网上获取大量数据。在这个“python京东评论爬虫”的实例中,我们将深入探讨如何利用Python进行...
在爬取过程中,为了避免被目标网站封禁,我们需要遵循爬虫伦理,合理设置爬取速度,尊重robots.txt文件,并在必要时进行反反爬虫措施,如设置User-Agent、代理IP池等。 在【压缩包子文件的文件名称列表】中提到的...
7. **IP代理和User-Agent**:为了避免被目标网站封禁,爬虫可能会使用IP代理池和随机的User-Agent字符串。 8. **异常处理和日志记录**:良好的错误处理和日志记录能确保爬虫在遇到问题时能够恢复,同时便于调试和...
本文全面介绍了几种典型的反爬虫机制以及对应的解决方案,具体来说,探讨了访问频率限制、User-Agent检查、验证码识别与处理的方法,同时提供了Python实例来展示如何绕过这类保护措施,包括设置不同的UA伪装,创建和...
【标题】:“新浪微博备份工具——” 【描述】:这篇描述虽然为空,但从“博文链接:https://ijavagos.iteye.com/blog/850336”中我们可以推测,这是一个关于如何使用特定工具或者自行编写代码来备份新浪微博内容的...
《Python爬虫实战练习手册——大众点评数据》 在当今数据驱动的时代,Python爬虫技术已成为获取网络数据的重要工具。本实战手册以“大众点评”网站为例,详细讲解了如何利用Python进行网络数据抓取、处理与分析。...
你可以通过阅读和运行这段代码来学习如何构建一个简单的网络爬虫。 "UserTools.py"可能是包含辅助工具或自定义函数的模块,例如数据清洗、文件操作、异常处理等。这些工具函数可以提高代码的可读性和复用性,使得...
本书《Python网络编程基础》旨在帮助初学者掌握Python进行网络通信的基本技能,通过阅读本书和配套的源码,读者可以深入理解网络编程的核心概念。 首先,让我们探讨Python在网络编程中的角色。Python以其简洁明了的...
Burp Suite 是一款用于Web应用程序安全测试的强大工具,它集成了多种功能,包括代理、扫描器、爬虫、入侵测试工具等。这些功能可以帮助安全研究人员和渗透测试工程师识别和利用Web应用程序中的安全漏洞。Burp Suite ...
5. **反爬策略**:在Frontera中,你可以集成各种反爬策略,如User-Agent切换、IP代理池、验证码识别等,以应对网站的反爬虫机制。 6. **日志与监控**:Frontera提供了详细的日志记录和监控功能,可以帮助开发者跟踪...
《Facebook数据抓取利器——Python库facebook-scraper详解》 在当今互联网时代,社交媒体平台如Facebook成为了信息传播的重要载体,而对这些平台的数据进行分析和挖掘则成为了许多研究者、营销人员以及开发者的重要...
8. **IP代理**:为了避免频繁访问同一网站被封锁,项目可能使用了IP代理池,确保爬虫可以稳定运行。 9. **定时任务**:如果需要定期抓取新数据,可能还结合了像是`APScheduler`这样的库来设置定时任务。 10. **...
标题中的“py代码-爬取王者荣耀全英雄皮肤以及英雄联盟”表明这是一个使用Python语言编写的爬虫程序,目的是抓取两个热门游戏——王者荣耀和英雄联盟的相关数据,具体来说是这两个游戏中的英雄皮肤信息。在Python中...