原理: 通过访问文章的次数,提高访问次数,从而提高积分和排名
环境: ubuntu 18.04, scrapy 框架
目的: 纯属好奇
1. 创建爬虫:csdnblog_spider.py
# coding: utf8
import scrapy
class CsdnblogSpider(scrapy.Spider):
name = 'csdn'
def start_requests(self):
# 3 pages
urls = ['https://blog.youkuaiyun.com/eiffel_0311/article/list/1?',
'https://blog.youkuaiyun.com/eiffel_0311/article/list/2?',
'https://blog.youkuaiyun.com/eiffel_0311/article/list/3?']
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
for url in response.css('div.article-item-box p.content a::attr(href)').extract():
if url.find('yoyo_liyy') == -1:
yield {'url' : url}
yield scrapy.Request(url=url, callback=self.parse)
2. 编辑 middlewares.py, 添加:
class ProxyMiddleware(object):
def process_request(self, request, spider):
request.meta['proxy'] = 'http://127.0.0.1:8123'
注意 127.0.0.1:8123 是本地的http 代理, 本地http 代理连接了tor 匿名网络, 保证爬去文章连接的时候使用不同的ip。同一ip段时间高频访问文章链接是没有用的
3. 编辑settrings.py, 添加:
DOWNLOADER_MIDDLEWARES = {
'tutorial.middlewares.ProxyMiddleware': 100
}
4. 试运运行: scrapy crawl csdn
5. 可添加定时任务(利用crontab, 注意不要太频繁)
weixin: eiffel0311