Python 爬虫实现增加播客访问量
一、序言:
世界 1024 程序猿节日不加班,闲着没事儿。。。随手写了个播客访问量爬虫玩玩,访问量过万不是事儿!!!每个步骤注释都很清晰,代码仅供学习参考!
---- Nick.Peng
二、所需环境:
- Python3.x
- 相关模块: requests、json、lxml、urllib、bs4、fake_useragent
三、增加Blog访问量代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: Nick
# @Date: 2019-10-24 15:40:58
# @Last Modified by: Nick
# @Last Modified time: 2019-10-24 16:54:31
import random
import re
import time
import urllib
import requestsfrom bs4 import BeautifulSoup
from fake_useragent import UserAgenttry:from lxml import etree
except Exception as e:import lxml.html# 实例化一个etree对象(解决通过from lxml import etree导包失败)etree = lxml.html.etree# 实例化UserAgent对象,用于产生随机UserAgent
ua = UserAgent()class BlogSpider(object):"""Increase the number of CSDN blog visits."""def __init__(self):self.url = "https://blog.csdn.net/PY0312/article/list/{}"self.headers = {"Referer": "https://blog.csdn.net/PY0312/","User-Agent": ua.random}self.firefoxHead = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"}self.IPRegular = r"(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])"def send_request(self, num):"""模拟浏览器发起请求:param num: num:return: html_str"""html_str = requests.get(self.url.format(num), headers=self.headers).content.decode()# print(html_str)return html_strdef parse_data(self, html_str):"""用于解析发起请求返回的数据:param html_str::return: each_page_urls"""# 将返回的 html字符串 转换为 element对象,用于xpath操作element_obj = etree.HTML(html_str)# print(element_obj)# 获取每一页所有blog的urleach_page_urls = element_obj.xpath('//*[@id="mainBox"]/main/div[2]/div/h4/a/@href')# print(each_page_urls)return each_page_urlsdef parseIPList(self, url="http://www.xicidaili.com/"):"""爬取最新代理ip,来源:西刺代理注意:西刺代理容易被封,如遇到IP被封情况,采用以下两种方法即可解决:方法一:请参考我上一篇博客《Python 实现快代理IP爬虫》 ===> 喜欢研究的同学,可参考对接此接口方法二:直接屏蔽掉此接口,不使用代理也能正常使用:param url: "http://www.xicidaili.com/":return: 代理IP列表ips"""ips = []request = urllib.request.Request(url, headers=self.firefoxHead)response = urllib.request.urlopen(request)soup = BeautifulSoup(response, "lxml")tds = soup.find_all("td")for td in tds:string = str(td.string)if re.search(self.IPRegular, string):ips.append(string)# print(ips)return ipsdef main(self, total_page, loop_times, each_num):"""调度方法:param total_page: 设置博客总页数:param loop_times: 设置循环次数:param each_num: 设置每一页要随机挑选文章数:return:"""i = 0# 根据设置次数,打开循环while i < loop_times:# 遍历,得到每一页的页码for j in range(total_page):# 拼接每一页的url,并模拟发送请求, 返回响应数据html_str = self.send_request(j + 1)# 解析响应数据,得到每一页所有博文的urleach_page_urls = self.parse_data(html_str)# 调用parseIPList随机产生代理IP,防反爬# ips = self.parseIPList()# proxies = {"http": "{}:8080".format(# ips[random.randint(0, 40)])}# 遍历,每一页随机挑选each_num篇文章for x in range(each_num):# 随机抽取每一页的一篇博文进行访问,防反爬current_url = random.choice(each_page_urls)status = True if requests.get(current_url, headers=self.headers).content.decode() else Falseprint("当前正在访问的文章是:{},访问状态:{}".format(current_url, status))time.sleep(1) # 延时1秒,防反爬time.sleep(1) # 延时1秒,防反爬i += 1if __name__ == '__main__':bs = BlogSpider()bs.main(7, 200, 3) # 参数参照main方法说明,酌情设置
Python 爬虫实现增加播客访问量相关推荐
- python爬虫设计刷博客访问量(刷访问量,赞,爬取图片)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 需要准备 ...
- Python爬虫爬取博客访问量
实现功能: 查看自己活着别人CSDN中每篇博客的访问量 语言: Python3.5 用到的库: requests re 步骤: 1.找到数据源:找到一个现实所有博客的页面,在一篇博客的右上方可以点击目 ...
- python博客访问量_史诗级干货-python爬虫之增加CSDN访问量
AI 人工智能 史诗级干货-python爬虫之增加CSDN访问量 史诗级干货-python爬虫之增加CSDN访问量 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法. ...
- 如何在 CSDN 中增加博客访问量 史上最简单的博客教程 学会之后博客访问量直线上升。
蹭热度 如何蹭是问题.下面分几点 你发布的有关技术是什么 你发布的是否是别人发布过的东西 你发布的东西在别人是怎样搜索的. 其实重点在流量,也就是点击.点击到位了,无论你文章来自哪里,或者说抄自哪里, ...
- 如何增加博客访问量(一)
如何增加博客访问量(一) 如何增加博客访问量? 自己动手,丰衣足食(即答 代码: package java_xer;import java.io.IOException; import java.io ...
- 【爬虫+数据可视化】Python爬取CSDN博客访问量数据并绘制成柱状图
以下内容为本人原创,欢迎大家观看学习,禁止用于商业及非法用途,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/ ...
- python刷阅读_简单的37行python爬虫刷CSDN博客阅读数
# -*- coding:utf-8 -*- # 利用爬虫刷CSDN博客阅读数 import requests from bs4 import BeautifulSoup # 解析源码 def Get ...
- Python爬虫小实践:爬取任意CSDN博客所有文章的文字内容(或可改写为保存其他的元素),间接增加博客访问量...
Python并不是我的主业,当初学Python主要是为了学爬虫,以为自己觉得能够从网上爬东西是一件非常神奇又是一件非常有用的事情,因为我们可以获取一些方面的数据或者其他的东西,反正各有用处. 这两天闲 ...
- 简单CSDN爬虫,实现博客访问量记录
看到别人用Java写了一个CSDN爬虫,监控访问量. 看完之后就写了一个Python的. Python小白,代码有点垃圾,大神莫喷. 要爬CSDN,首先要学会违装成浏览器. 再用正则表达式就可以了. ...
最新文章
- 软件著作权 开源框架_开源软件分享-基于.net core 3.1的快速开发框架
- IIS中 flv、swf 文件无法播放
- C语言实现红黑树(附完整源码)
- 2015-03-18 header note creation in my Appointment
- Amazon、Linux基金会开发边缘网络交换器操作系统
- eclipse添加源码的另外一种方法
- 详细剖析linux的内存管理方式(分段式、分页式、段页式),以及进程状态的具体关系
- mysql 删除数据_3.MySQL数据库创建、查询、删除
- bz 1029: [JSOI2007]建筑抢修
- gcc编译ceres-solver报错‘is_trivially_default_constructible’ is not a member of ‘std’
- LuoguP4233 射命丸文的笔记
- 初一数学教材人教版_【期中试卷+知识点总结】初中初一初二初三年级各科期中试卷+知识点总结...
- 剑指offer面试题27. 二叉树的镜像(递归)
- python 学习爬虫教程~
- 在hisi上QT交叉编译过程(带webengine)
- 计算机编程入门基础知识(计算机组成原理/操作系统/计算机网络)
- 一款网页游戏外挂开发-数据抓包2
- python读写 doc文件和docx文件
- java.lang.IllegalArgumentException: Address 127.0.0.1:5672:5672 seems to contain an unquoted IPv6
- 试用LibreOffice对VBA的支持
热门文章
- 内网xshell传输文件命令_Xshell 上传文件到服务器 以及常用的lunix 命令
- Excel 下拉单元格,使整行背景变色(一看就懂)
- Ruby.say_hello——Programming Ruby中文版序
- 关于坐标旋转 平移理解
- linux的多用户登录
- mysql 字段命名is__数据库表字段命名规则
- 周五了,整点没用的,比如如何激怒一个程序员?
- 质量检查工程师应避免的7个不良习惯
- Docker 搭建的大数据环境
- LeetCode题解(0568):最大休假天数(Python)