python爬虫优快云文章抓取

爬虫技术——一篇全搞定! python爬虫技术 阅读详情

优快云原则上不让非人浏览访问,正常爬虫无法从这里爬取文章,需要进行模拟人为浏览器访问。


使用:输入带文章的优快云链接自动生成正文的HTML,文件名为标题名


#!/usr/bin/env python
# coding=utf-8
#########################################
	#> File Name: 优快云_article.py
	#> Author: nealgavin
	#> Mail: nealgavin@126.com 
	#> Created Time: Tue 27 May 2014 03:42:54 PM CST
#########################################

import random
import socket
import urllib2
import urllib
import re
import string
import BeautifulSoup
import sys
import cookielib

ERROR = {
        '0':'Can not open the url,checck you net',
        '1':'Creat download dir error',
        '2':'The image links is empty',
        '3':'Download faild',
        '4':'Build soup error,the html is empty',
        '5':'Can not save the image to your disk',
    }

class BrowserBase(object): 
    """模拟浏览器"""
    def __init__(self):
        socket.setdefaulttimeout(20)
        self.HTML = ''
        self.articleName = ''
        self.link = ''
    def speak(self,name,content):
        print '[%s]%s' %(name,content)

    def openurl(self,url):
        """
        打开网页
        """
        cookie_support= urllib2.HTTPCookieProcessor(cookielib.CookieJar())
        self.opener = urllib2.build_opener(cookie_support,urllib2.HTTPHandler)
        urllib2.install_opener(self.opener)
        user_agents = [
                    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
                    'Opera/9.25 (Windows NT 5.1; U; en)',
                    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
                    'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
                    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',
                    'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',
                    "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7",
                    "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 ",

                    ] 
       
        agent = random.choice(user_agents)
        self.opener.addheaders = [("User-agent",agent),("Accept","*/*"),('Referer','http://www.google.com')]
        try:
            res = self.opener.open(url)
            self.HTML = res.read()
#            print res.read()
        except Exception,e:
            self.speak(str(e),url)
            raise Exception
        else:
            return res
    def OUT(self):
        print self.HTML

    def getArticleName(self,tags):

        re_rules = r'<span class="(.+?)"><a href="(.+?)">(.+?)</a>'
        p = re.compile(re_rules,re.DOTALL)
        title = p.findall(str(tags))
        self.chineseListOut(title)

    def chineseListOut(self,tags):
        title = []
        for tag in tags:
            for ele in tag:
#                print '+',str(ele),'-'
                title.append(ele.strip())
        self.link = "http://blog.youkuaiyun.com" + title[1]
        tle = title[2].split()
        self.articleName = '-'.join(tle)

    def buildArticleHTML(self):
        self.HTML = str(self.HTML)
        self.HTML = '<html><meta charset="utf-8"><body>'+self.HTML
        self.HTML = self.HTML + '</body><html>'

    def getMainArticle(self):
        """get the main article of 优快云 blog"""
        soup = BeautifulSoup.BeautifulSoup(self.HTML)
        tags_all = soup.findAll('div',{'class':'article_title'})
        self.getArticleName(tags_all)
        tags_all = soup.findAll('div',{'id':'article_content','class':'article_content'})
        self.HTML = tags_all[0]
        self.buildArticleHTML()
    
    def saveArticleAsHTML(self):
        filePath = self.articleName+'.html'
        try:
            
            filePointer = open(filePath,'w+')
        except:
            print 'open error'
        print 'path = ',filePath
        filePointer.write(self.HTML)
        filePointer.close()

browser = BrowserBase()
url = raw_input('Input the links of 优快云 article you needed!\n')
if url is None or len(url) == 0:
    url = "http://blog.youkuaiyun.com/nealgavin/article/details/27110717"
browser.openurl(url)
browser.getMainArticle()
browser.saveArticleAsHTML()


【python】爬取优快云博客文章(保存为html,txt,md) 闲来无事,用requests试一试爬取csdn,顺便加了一个三格式保存功能 阅读详情

相关推荐

Python爬虫入门实战:抓取优快云博客文章

在大数据时代,网络上充斥着海量的信息,而爬虫技术就是解锁这些信息宝库的钥匙。Python,以其简洁易读的语法和强大的库支持,成为编写爬虫的首选语言。本篇博客将从零开始,带你一步步构建一个简单的Python爬虫,抓取优快云博客的文章标题和链接。页面结构分析是爬虫的第一步,让我们先访问目标网站,使用浏览器的“检查”功能查看页面的HTML结构。通过本篇博客,我们不仅学会了如何使用Python抓取网页数据,更深入理解了爬虫的工作原理。使用BeautifulSoup解析HTML文档,提取我们需要的数据。

weixin_64935505的博客 1231

爬取优快云专栏文章到本地,并保存为html、pdf、md格式

前言 突然想爬取优快云的专栏文章到本地保存了,为了影响小一点,特地挑选优快云的首页进行展示。 综合资讯这一测试点是什么找到的呢?就是点击下图的热点文章,然后跳转到具体文章 ,然后再点击专栏文章,就进入了 废话少说,直接上代码 用面向对象的思维实现了代码 代码思路放在了代码注释里面 用到了requests、bs4等主流接口 剩下的就是,希望大家有空基于这个继续开发完善,哈哈哈哈!!! 此代码和实现内容都已经打包上传只Gitee,可以点击查看 “”" @Author:surviv

tgs2033的博客 737

Python 爬虫教程:如何使用现代技术抓取技术博客平台(优快云/博客园)上的文章、评论和点赞数据

我们使用了现代 Python 爬虫库,包括requestsSeleniumpandasMongoDB和,构建了一个高效、可扩展的爬虫框架。在实际应用中,你可以根据需求定制抓取内容和存储方式,结合数据分析进行进一步的处理。希望本文对你有帮助,能够帮助你构建自己的爬虫项目并进行有效的数据分析。

2201_76125261的博客 861

优快云批量文章爬取

链接:https://cms-api.csdn.net/v1/web_home/select_content?由下图可见,可以直接访问html,然后来获取文章信息,可以直接获取html来展示,我这边是只获取内容。从网页资源分析,得到推荐页面的文章信息。修改时间:2024-03-24。

qq_52170197的博客 681

爬虫项目(七):优快云博客全部文章信息爬取

优快云博客全部文章信息爬取

全栈川川 1685

优快云爬虫(一)——爬虫入门+数据总览

文章同步:http://blog.csdn.net/wgyscsf

【爬虫实战】python批量抓取csdn博主全部文章

本文介绍了使用Python爬虫实战技术,批量爬取优快云博主的全部文章,包括案例源码和可执行文件。读者将学会如何利用爬虫工具快速获取大量信息,为日常工作和研究提供便利。

玛卡`三少 的博客 1624

pyhton爬虫:三种爬取csdn首页所有文章的方法

1. 爬取csdn首页所有文章 1.1 方法1 import urllib.request import re\nurl='http://blog.csdn.net/' #伪装浏览器 headers=('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0') opener=urllib.request.build_opener() opener.addheaders=

python爬虫抓文章_python爬虫优快云文章抓取

优快云原则上不让非人浏览访问,正常爬虫无法从这里爬取文章,需要进行模拟人为浏览器访问。使用:输入带文章的优快云链接自动生成正文的HTML,文件名为标题名#!/usr/bin/env python# coding=utf-8##########################################> File Name: 优快云_article.py#> Author: ...

weixin_39976499的博客 326

Ubuntu22.04下ROS2与PX4仿真环境搭建全流程解析

本文详细解析了在Ubuntu22.04系统下搭建ROS2与PX4仿真环境的全流程,包括系统准备、ROS2 Humble安装、PX4飞控环境部署、ROS2与PX4通信桥梁搭建等关键步骤。针对常见问题提供了解决方案,并分享了性能优化和开发调试技巧,帮助开发者快速构建无人机仿真开发环境。

weixin_29248653的博客 607

Cadence SKILL 语言实战指南:从函数列表到高效自动化脚本

本文是Cadence SKILL语言实战指南,旨在帮助芯片设计工程师从掌握核心函数列表出发,高效构建自动化脚本。文章详细解析了数据处理、数据库访问、流程控制及错误处理四类关键函数,并通过版图层批量修改与参数化单元生成两大实战场景,演示如何将函数组合成解决实际问题的自动化方案,从而显著提升Virtuoso环境下的工作效率。

beta5的博客 706

用 python 爬虫 得到 csdn 博客的文章链接和标题

用 python 爬虫 得到 csdn 博客的文章链接和标题 代码 #!/usr/bin/env python3 # -*- coding: UTF-8 -*- # Import corresponding modules import numpy as np import pandas as pd import requests import re # 设置列名字 columns = n...

YKenan的博客 546

AI大模型驱动的智能座舱研发体系重构

AI大模型正重构智能座舱研发体系的核心逻辑,需以场景认知为起点、混合架构为支柱、AI原生生态为落脚点。未来,研发体系需持续融合认知科学、边缘计算与开放生态理论,推动座舱从“工具”进化为“伙伴”。

我的专栏 1916

python爬虫之python2.7.8抓取csdn博客文章

1.简介 python爬虫是python应用的一个重要方便,最近用高Python2.7.8(只所以没有选最新的3.4,是因为有些模块还没有移植到最新python版本)写了一个小例子,在调试过程中碰到的最头疼的问题是中文乱码和正则表达式,要解决这两个问题,办法有,python源文件一定要用utf-8编码格式保存,每个python文件开头这样写,  import sys; reload(sys)

Hello World 1608

AI辅助决策支持系统架构设计避坑:5个常见技术选型误区及正确方案

AI辅助决策支持系统(AI-DSS)是指通过人工智能技术(机器学习、自然语言处理、知识图谱等)赋能传统决策支持系统,帮助决策者在复杂业务场景中(如供应链优化、风险控制、医疗诊断、金融投资等)提升决策效率和准确性的系统。与传统BI工具不同,AI-DSS不仅能"展示数据",还能基于数据生成"决策建议"甚至"自动执行决策"。技术选型是AI-DSS架构设计的核心环节,涉及数据处理引擎、模型框架、算力资源、集成接口等关键组件的选择。效果不达标:模型预测精度低、决策建议不可用;成本失控:算力资源浪费、维护成本高企。

AIGC应用创新大全的博客 1384

【unity知识】最新的虚拟相机Cinemachine3简单使用介绍

本文介绍了Unity中Cinemachine 3虚拟相机系统的使用方法。相比旧版本,新版功能更强大且参数分类更直观。文章详细讲解了摄像机镜头参数、旋转控制(包括None、目标跟随、样条线推拉、旋转追随等6种模式)和位置控制(跟随、样条轨道、硬锁定等5种模式)。重点演示了样条轨道摄像机的创建与配置,以及如何实现第一人称和第三人称视角。通过丰富的GIF图示,展示了各种模式的运行效果,帮助用户快速掌握Cinemachine 3的核心功能。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 866

Python爬虫Csdn系列II

Python爬虫Csdn系列II By 白熊花田(http://blog.csdn.net/whiterbear) 转载需注明出处,谢谢。 说明: 在上一篇文章中,我们已经知道了只要将程序伪装成浏览器就能访问csdn网页。在这篇文章中,我们将设法获取某个csdn用户的所有文章的链接。 分析: 打开一个某一个的csdn用户的的专栏

whiterbear的专栏 2447

R语言中的混淆矩阵(Confusion Matrix)是一种常用的评估多分类模型性能的工具

除了准确率,混淆矩阵还提供了其他有用的指标,如灵敏度(Sensitivity)、特异度(Specificity)、精确度(Precision)和召回率(Recall)。混淆矩阵通过比较模型预测结果与实际标签的一致性,帮助我们了解模型的分类准确性和错误类型。此外,混淆矩阵还提供了各种错误类型的统计信息,如假阳性(False Positive)和假阴性(False Negative)等。通过混淆矩阵,我们可以了解模型的整体性能和错误类型,从而对模型进行评估和改进。最后,为了更好地理解混淆矩阵的结果,可以使用。

HackSquad的博客 972

【Python爬虫实战】10行代码抓取优快云热门文章(附完整代码+避坑指南)

大家好,我是[你的昵称],今天分享一个用Python实现的优快云首页文章抓取小工具。只需10行核心代码,就能快速获取技术圈最新动态,适合爬虫新手练手!

qq_59025837的博客 841

(LDA新闻文本主题分析)基于 gensim训练LDA模型,进行新闻文本主题分析 完整代码+数据 可直接运行

(LDA新闻文本主题分析)基于 gensim训练LDA模型,进行新闻文本主题分析 完整代码+数据 可直接运行

机器学习深度学习业余选手 1498

【Ellisys】【使用技巧】【二】

支持所有常见的编码器和协议实时播放或保存(无线和HCI)循环播放导出与其他视图协同(OverView 和 Spectrum)可以通过下面的位置看 重传的包。

奔跑吧 android 的博客 137

最新Python爬取优快云文章并制作成PDF

,完整代码import re“”“获取音乐的songid”“”“”“获取下载链接”“”try:print(e)“”“下载音乐”“”“”“保存音乐”“”if== “”:优快云.py。

2401_84563438的博客 1221

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Python爬虫抓取csdn博客

昨天晚上为了下载保存某位csdn大牛的全部博文,写了一个爬虫来自动抓取文章并保存到txt文本,当然也可以 保存到html网页中。这样就可以不用Ctrl+C 和Ctrl+V了,非常方便,抓取别的网站也是大同小异。 为了解析抓取的网页,用到了第三方模块,BeautifulSoup,这个模块对于解析html文件非常有用,当然也可以自己使用正则表达式去解析,但是比较麻烦。 由于csdn网站的robots.txt文件中显示禁止任何爬虫,所以必须把爬虫伪装成浏览器,而且不能频繁抓取,得sleep一会再抓,使用频繁会

mangoer_ys 6599

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 网络爬虫实例:找出腾讯视频的电视电影名和链接
下一篇: 神经网络python 实现
剑不飞
博客等级 码龄15年 86粉丝 505原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值