分享好友 最新动态首页 最新动态分类 切换频道
2017.08.10 Python爬虫实战之爬虫攻防
2024-12-26 22:42

1.创建一般的爬虫:一般来说,小于100次访问的爬虫都无须为此担心

(1)以爬取美剧天堂为例,来源网页:http://www.meijutt.com/new100.html,项目准备:

scrapy startproject meiju100

F:PythonPythonWebScrapingPythonScrapyProject>cd meiju100

F:PythonPythonWebScrapingPythonScrapyProjectmeiju100>scrapy genspider meiju100Spider meijutt.com

项目文件结构:

 

 (2)修改items.py文件:

(3)修改meiju100Spider.py文件:

先检查网页源代码:发现<div class="lasted-num fn-left">开头的标签,包含所需数据:

 

# -*- coding: utf-8 -*-
import scrapy
from meiju100.items import Meiju100Item

class Meiju100spiderSpider(scrapy.Spider):
name = 'meiju100Spider'
allowed_domains = ['meijutt.com']
start_urls = (
'http://www.meijutt.com/new100.html'
)

def parse(self, response):
subSelector=response.xpath('//li/div[@class="lasted-num fn-left"]')
items=[]
for sub in subSelector:
item=Meiju100Item()
item['storyName']=sub.xpath('https://www.cnblogs.com/hqutcy/h5/a/text()').extract()[0]
item['storyState']=sub.xpath('https://www.cnblogs.com/hqutcy/span[@class="state1 new100state1"]/text()').extract()[0]
item['tvStation']=sub.xpath('https://www.cnblogs.com/hqutcy/span[@class="mjtv"]/text()').extract()
item['updateTime']=sub.xpath('//div[@class="lasted-time new100time fn-right"]/text()').extract()[0] //运行报错:IndexError: list index out of range,<div
items.append(item)

return items


 (4)编写pipelinses.py文件,保存爬取的数据到文件夹:

# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
import time

class Meiju100Pipeline(object):
def process_item(self, item, spider):
today=time.strftime('%Y%m%d',time.localtime())
fileName=today+'meiju.txt'
with open(fileName,'a') as fp:
fp.write("%s " %(item['storyName'].encode('utf8')))
fp.write("%s " %(item['storyState'].encode('utf8')))
if len(item['tvStation'])==0:
fp.write("unknow ")
else:
fp.write("%s " %(item['tvStation'][0]).encode('utf8'))
fp.write("%s " %(item['updateTime'].encode('utf8')))

return item

(5)修改settings.py文件:

(6)在meiju项目下任意目录下,运行命令:scrapy crawl meiju100Spider

运行结果:

 

2.封锁间隔时间破解:Scrapy在两次请求之间的时间设置DOWNLOAD_DELAY,如果不考虑反爬虫的因素,这个值当然是越小越好,

如果把DOWNLOAD_DELAY的值设置为0.1,也就是每0.1秒向网站请求一次网页。

所以,需要在settings.py的尾部追加这一项即可:

 

 3.封锁Cookies破解:总所周知,网站是通过Cookies来确定用户身份的,Scrapy爬虫在爬取数据时使用同一个Cookies发送请求,这种做法和把DOWNLOAD_DELAY设置为0.1没什么区别。

所以,要破解这种原理的反爬虫也很简单,直接禁用Cookies就可以了,在Setting.py文件后追加一项:

 

最新文章
江西二本院校排行榜
志愿梯度在高考志愿填报中非常重要。所谓志愿梯度,简单说是指在同一批次内拉开档次。即便是在平行志愿模式下,如果A志愿选择了“热”学校准备冲一冲,BCD志愿就要依次降温稳一稳,最后还一定要有“冷”来兜底。分数不高、缺乏竞争力的考生
淘宝联盟微博推广技巧是什么?如何做好?(淘宝客微博推广教程)
在淘宝上开店的商家大部分都开通了淘宝联盟,在里面进行淘宝客推广是非常常见的,而淘宝客们在推广的时候不会局限于站内推广,他们还会在微博等主流社交平台上推广,那么微博推广有哪些技巧呢?淘宝联盟微博推广技巧是什么?微博推广微博最为
泰安屋顶漏水维修电话〈免费上门〉泰安屋顶防水补漏师傅
不砸砖、不砸墙;免砸砖防水补漏技术,2小时快速解决漏水问题,超长保修期。漏水维修服务项目:地下室渗水、厨房漏水、屋顶漏水、高压注浆堵漏、楼顶防水、屋面防水补漏、卫生间墙面起皮、防水施工、地板下暗管漏水、窗台防水补漏、防水查漏、
西安微信小程序开发收费标准,不同模式费用区别大
微信小程序开发收费标准。不少公司想要做一款自己的小程序,但是不知道如何进,费用多少钱?这里可以和大家说一下小程序由于模式不同。开发公司不同,设计水准不同,产生的费用自然也是不同的。认证费用要做一个微信小程序,首先要做的就是
雷电云手机PC客户端下载
雷电云手机PC客户端是一款畅指网络开发的云手机软件,24小时挂机神器,您的另一台手机,优秀的手机应用云平台,雷电云手机全面支持各种手机应用程序的展示、下载及应用与管理服务,并卓越实现全天候云端智能托管应用,让用户在脱离移动终端
鲸观察|搜索行业悄然变天,谷歌百度等巨头正被社交媒体和AI公司“偷家”?
图片来自视觉中国蓝鲸新闻12月16日讯(记者 武静静)社交媒体平台和新势力AI大模型正在悄无声息地颠覆传统搜索引擎行业。据周天财经报道,2024年四季度,小红书的日均搜索量已经接近6亿次。业内人士估计,百度的日均搜索量略高于10亿次,小
百度推广优化秘籍,精准触达,效果倍增
百度推广优化策略着重于精准定位目标受众,通过优化内容、关键词、广告创意和投放时段等多方面手段,提高广告效果。通过分析受众行为,调整投放策略,实现广告投放的精准触达,提升广告率。随着互联网技术的飞速发展,内容逐渐成为传播的主
高清美女写真生成工具推荐:用AI创造你的完美女神!
DALL-E 2:这款工具由OpenAI开发,以其惊人的生成图像能力而著称。用户只需输入文字描述,DALL-E 2便能根据这些信息创作出各种风格的美女照片。但需要注意的是,它对细节的提取有时会不足,生成的图像比例和角度可能略显奇怪。一些用户会觉
集成显卡能玩什么游戏 3款经典游戏推荐
  就目前来说,游戏是DIY电脑的一个主要用途,也是促进显卡、显示芯片不断发展的主要动力。那么,对于配有集成显卡的朋友来说,成显卡能玩什么游戏呢?不要担心,下面为您推荐几款 门槛 低的游戏。  集成显卡能玩什么游戏1、最期待的国
相关文章
推荐文章
发表评论
0评