Python一日一练05—-怒刷点击量[通俗易懂]

Python一日一练05—-怒刷点击量

大家好,又见面了,我是全栈君。

功能

自己主动获取CSDN文章列表,并对每篇文章添加点击量.

源代码

import urllib.request
import re
import time
import random
from bs4 import BeautifulSoup

p = re.compile('/a359680405/article/details/........')

#自己的博客主页
url = "http://blog.csdn.net/a359680405"

#使用build_opener()是为了让python程序模仿浏览器进行訪问
opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]

html = opener.open(url).read().decode('utf-8')

allfinds = p.findall(html)
print(allfinds)

urlBase = "http://blog.csdn.net"#须要将网址合并的部分
#页面中的网址有反复的,须要使用set进行去反复
mypages = list(set(allfinds))
for i in range(len(mypages)):
    mypages[i] = urlBase+mypages[i]

print('要刷的网页有:')
for index , page in enumerate(mypages) :
    print(str(index), page)

#设置每一个网页要刷的次数
brushMax = 200

#全部的页面都刷
print('以下開始刷了哦:')
for index , page in enumerate(mypages) :
    brushNum=random.randint(0,brushMax)
    for j in range(brushNum):
        try :
            pageContent = opener.open(page).read().decode('utf-8')
            #使用BeautifulSoup解析每篇博客的标题
            soup = BeautifulSoup(pageContent)
            blogTitle = str(soup.title.string)
            blogTitle = blogTitle[0:blogTitle.find('-')]
            print(str(j) , blogTitle) 
            
        except urllib.error.HTTPError:
            print('urllib.error.HTTPError')
            time.sleep(1)#出现错误。停几秒先
            
        except urllib.error.URLError:
            print('urllib.error.URLError')
            time.sleep(1)#出现错误,停几秒先
        time.sleep(0.1)#正常停顿,以免server拒绝訪问


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115762.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • webpack配置文件_reconfig

    webpack配置文件_reconfig前言上一篇文章我们使用webpack打包成功了,但是每次都要自己手动输入打包的文件地址和打包到哪里去的地址,非常麻烦,所以这里介绍使用配置文件进行打包webpack.config.js首先我们创

    2022年7月31日
    7
  • JavaScript Array的map方法

    JavaScript Array的map方法定义和用法:map方法返回一个新数组,不会改变原数组数组中的元素为原始数组元素调用函数处理后的值array.map(function(currentValue,index,arr),thisValue)其中function的三个参数分别是:参数描述currentValue必须。当前元素的值index可选值。当前元素的索引值arr可选值。当前元素属于的数组对象实例:letarrMap:Array<string>=[‘1’,’2

    2022年7月13日
    20
  • Odin Inspector 系列教程 — Hide If Attribute[通俗易懂]

    Odin Inspector 系列教程 — Hide If Attribute[通俗易懂]HideIfAttribute用于任何属性,并且可以在检查器中隐藏该属性。使用此选项可根据对象的当前状态隐藏不相关的属性。传一个属性的名称,此属性的值如果为true或者部位null,则隐藏此属性[HideIf(“IsToggled”)]publicVector3HiddenWhenToggled;[HideIf(“Som…

    2022年7月21日
    10
  • k1145次列车经过站点_最小生成树和最短路径的区别

    k1145次列车经过站点_最小生成树和最短路径的区别北极的某区域共有 n 座村庄,每座村庄的坐标用一对整数 (x,y) 表示。为了加强联系,决定在村庄之间建立通讯网络,使每两座村庄之间都可以直接或间接通讯。通讯工具可以是无线电收发机,也可以是卫星设备。无线电收发机有多种不同型号,不同型号的无线电收发机有一个不同的参数 d,两座村庄之间的距离如果不超过 d,就可以用该型号的无线电收发机直接通讯,d 值越大的型号价格越贵。现在要先选择某一种型号的无线电收发机,然后统一给所有村庄配备,数量不限,但型号都是 相同的。配备卫星设备的两座村庄无论相距多远都可以直

    2022年8月10日
    8
  • 2021Vue.js面试题汇总及答案【全网最全 建议收藏】「建议收藏」

    2021Vue.js面试题汇总及答案【全网最全 建议收藏】「建议收藏」文章目录前言一、Vue.js基本问题1.1.Vue响应式原理1.2.Vue.js的特点1.3.Vue.js双向绑定的原理1.4.Vue中如何监控某个属性值的变化?1.5.Vue.js3.0放弃defineProperty,使用Proxy的原因1.6.Vue2中给data中的对象属性添加一个新的属性时会发生什么?如何解决?前言之前博主有分享过Vue学习由浅到深的文章(Vue学习之从入门到神经)现在Vue学的好的话马内真的不必后端差所以今天博主就汇总下有关Vue的相关面试题

    2022年6月12日
    48
  • 设置java编译级别

    设置java编译级别右键项目—->properties—–>JavaComplier—->javaCompilancelevel
    —->1.6

    2022年6月1日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号