使用 Python Scrapy 爬取微博内容【二】

接上文。
根据实验,微博对于同一IP/Cookiess连续爬取允许时间大约为5min,所以为了连续的爬取,拥有多个账号&代理&User_Agent 是十分必要的。
账号这个我不多说,淘宝几毛钱的事情,但实现自动登录获取Cookies这个我没有研究过,但跟今天我要说的没什么关系。
今天我要说的是在Scrapy中使用代理来访问微博进而进行爬取。
首先我们得找到一些免费可用的代理服务器。网上有很多Python自动获取代理的方法,我这里只做简单的实验,所以就直接在程序中写死。

http://www.xdaili.cn/freeproxy.html

这个网站很不错,推荐的那几个免费的基本都能用。我这里使用他的无密码代理。

下面进入正文。

Settings.py的配置

想要使用代理,我们必须打开Downloader的Middleware。
设置如下:

DOWNLOADER_MIDDLEWARES = {
    'Spider.middlewares.Proxy_And_UsrAgent': 100,
}

由于只是使用代理,这使得我们的代码变得异常简单。

from Spider.settings import USER_AGENT
Proxy = [
    '180.122.155.55:31104',#这个自己更换
]
class Proxy_And_UsrAgent(object):
    # Not all methods need to be defined. If a method is not defined,
    # scrapy acts as if the spider middleware does not modify the
    # passed objects.
    def process_request(self,request,spider):
        request.headers.setdefault('User-Agent',random.choice(USER_AGENT))
        request.meta['proxy'] = 'http://' + random.choice(Proxy)

USER_AGENT这个相信大家都不陌生,这个写在settings.py里面,充当User_Agent列表。
每次访问,我们随机的选择一个USER_AGENT,随机的选择一个代理(这个不太好,应该每个账户固定一个代理&一个Header,多账户同时爬取)
process_request(),每次提交一次request,request便会传入process_request这里,我们就是在这里实现添加代理&User_Agent的操作的。

的确很简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值