使用python爬虫来增加csdn博客访问量

当有人浏览博客时,博客访问量会增加。只要规避csdn的监控机制,那么写一个python爬虫来访问博客,也可以达到增加访问量的效果。
程序环境为:python3.5
所需的库为:

import requests
import re
import random
import time

1.获取use-agent代理

#    url = 'https://www.cnblogs.com/1906859953Lucas/p/9027165.html'   #博客链接
#    pattern = "</strong></span><br>(.*?)</p>"     #正则表达式
def getUserAgent(url, pattern):
    res = requests.get(url, headers=header)
    res.raise_for_status()
    res.encoding = res.apparent_encoding
    values = re.findall(pattern, res.text, re.M|re.S|re.I)
    values = [value.replace('</p>\r\n', '').split('<br>') for value in values]
    values = [value for valuest in values for value in valuest]
    # print(values)
    global valuesDict
    valuesDict = [{"User-Agent": value} for value in values]

同一个use-agent会重复访问会被识别出来,可以使用多个use-agent来随机访问。这篇博客上一个博主总结的use-agent,我们要将博客上的use-agent爬取下来。

2. 访问主页,获取博客的链接

#          pattern = 'data-articleid="(.*?)"'
def visitPage(urls, pattern):
    global blogLinks
    # 数量要改为你的博客数量, 划重点
    while len(blogLinks) < 40:
        for url in urls:
            res = requests.get(url, headers=random.sample(valuesDict, 1)[0])
            text = re.findall(pattern, res.text, re.M|re.S|re.I)
            # 改为你的博客文章地址,
            links = ['https://blog.csdn.net/daoyone/article/details/{}'.format(i) for i in text]
            blogLinks.extend(links)
        blogLinks = list(set(blogLinks))

从CSDN的个人主页上获取所有文章的链接。正则表达式的书写可以通过查看页面源码,然后根据信息自己写出来。

3.开始随机访问博客

    while True:
        # 随机url
        url = random.sample(blogLinks, 1)[0]
        print("正在访问{}".format(url))
        # 访问
        requests.get(url=url, headers=random.sample(valuesDict, 1)[0])
        # 延时
        time.sleep(random.random() * 6)

4.所有代码

import requests
import re
import random
import time
valuesDict = []
blogLinks  = []
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0'}
# 获取use-agent代理
def getUserAgent(url, pattern):
    res = requests.get(url, headers=header)
    res.raise_for_status()
    res.encoding = res.apparent_encoding
    values = re.findall(pattern, res.text, re.M|re.S|re.I)
    values = [value.replace('</p>\r\n', '').split('<br>') for value in values]
    values = [value for valuest in values for value in valuest]
    # print(values)
    global valuesDict
    valuesDict = [{"User-Agent": value} for value in values]


# 访问页面获取文章链接
def visitPage(urls, pattern):
    global blogLinks
    # 50要改为你的博客数量, 划重点
    while len(blogLinks) < 40:
        for url in urls:
            res = requests.get(url, headers=random.sample(valuesDict, 1)[0])
            text = re.findall(pattern, res.text, re.M|re.S|re.I)
            # 改为你的博客文章地址,
            links = ['https://blog.csdn.net/daoyone/article/details/{}'.format(i) for i in text]
            blogLinks.extend(links)
        blogLinks = list(set(blogLinks))

# 运行函数
def runVisitPage():
	# 这是User-Agent的网址,不必修改
    url = 'https://www.cnblogs.com/1906859953Lucas/p/9027165.html'
    pattern = "</strong></span><br>(.*?)</p>"
    getUserAgent(url=url, pattern=pattern)
	# 改为你的博客地址,范围1,修改为你的博客页面范围
    urls = ['https://blog.csdn.net/daoyone/article/list/1']

    pattern = 'data-articleid="(.*?)"'
    visitPage(urls, pattern)


    while True:
        # 随机url
        url = random.sample(blogLinks, 1)[0]
        print("正在访问{}".format(url))
        # 访问
        requests.get(url=url, headers=random.sample(valuesDict, 1)[0])
        # 延时
        time.sleep(random.random() * 6)

if __name__ == '__main__':
    runVisitPage()

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

storm岚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值