Python实现抓取CSDN热门文章列表

1、使用工具:

Python3.5

BeautifulSoup

2、抓取网站:

csdn热门文章列表 http://blog.csdn.net/hot.html

3、实现代码:

__author__ = ‘Administrator‘
import urllib.request
import re
from bs4 import BeautifulSoup

########################################################
#
# 抓取csdn首页文章http://blog.csdn.net/?&page=1
#
#
#
########################################################
class CsdnUtils(object):
    def __init__(self):
        user_agent = ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36‘
        self.headers = {‘Cache-Control‘: ‘max-age=0‘,
                        ‘Connection‘: ‘keep-alive‘,
                        ‘Accept‘: ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8‘,
                        ‘User-Agent‘: user_agent,
        }

    def getPage(self, url=None):
        request = urllib.request.Request(url, headers=self.headers)
        response = urllib.request.urlopen(request)
        soup = BeautifulSoup(response.read(), "html.parser")
        #print(soup.prettify())
        return soup

    def parsePage(self, url=None, page=None):
        soup = self.getPage(url)
        itemBlog = soup.find_all(‘div‘, ‘blog_list‘)
        cnArticle = CsdnUtils
        print("========================第", page, "页======================================")
        for i, itemSingle in enumerate(itemBlog):
            cnArticle.num = i
            cnArticle.author = itemSingle.find(‘a‘, ‘user_name‘).string
            cnArticle.postTime = itemSingle.find(‘span‘, ‘time‘).string
            cnArticle.articleView = itemSingle.find(‘a‘, ‘view‘).string
            if itemSingle.find(‘h1‘).find(‘a‘).has_attr(‘class‘):
                cnArticle.type = itemSingle.find(‘h1‘).find(‘a‘, ‘category‘).string
            else:
                cnArticle.type = "None"
            cnArticle.title = itemSingle.find(‘h1‘).find(‘a‘, attrs={‘name‘: True}).string
            cnArticle.url = itemSingle.find(‘h1‘).find(‘a‘, attrs={‘name‘: True}).get("href")
            print("数据:", cnArticle.num + 1, ‘\t‘, cnArticle.author, ‘\t‘, cnArticle.postTime, ‘\t‘,
                  cnArticle.articleView, ‘\t‘, cnArticle.type, ‘\t‘, cnArticle.title, ‘\t‘, cnArticle.url)

#######     执行入口    ########
if __name__ == "__main__":

    #要抓取的网页地址‘http://blog.csdn.net/?&page={}‘.format(i+1),i+1)
    url = "http://blog.csdn.net/hot.html"

    cnblog = CsdnUtils()
    for i in range(0, 5):
        cnblog.parsePage(url, i + 1)

4、执行结果:

时间: 2024-12-20 09:38:25

Python实现抓取CSDN热门文章列表的相关文章

Python实现抓取CSDN首页文章列表

1.使用工具: Python3.5 BeautifulSoup 2.抓取网站: csdn首页文章列表 http://blog.csdn.net/ 3.实现代码: __author__ = 'Administrator' import urllib.request import re from bs4 import BeautifulSoup ######################################################## # # 抓取csdn首页文章http://

Python爬虫抓取csdn博客

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

使用python抓取CSDN关注人的所有发布的文章

# -*- coding: utf-8 -*- """ @author: jiangfuqiang """ import re import urllib2 import cookielib import time def startParser(author,page=1): reg = r'<a href="/\w+/article/details/\d+">\s*\t*\n*\s*\t*\s*.*?\t*\n

使用python抓取CSDN关注人的全部公布的文章

# -*- coding: utf-8 -*- """ @author: jiangfuqiang """ import re import urllib2 import cookielib import time def startParser(author,page=1): reg = r'<a href="/\w+/article/details/\d+">\s*\t*\n*\s*\t*\s*.*?\t*\n

使用python scrapy框架抓取cnblog 的文章内容

scrapy 的文档请移驾到 http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html 1.准备工作  安装python .Spyder .scrapy 如果想要数据直接入mysql 还需要安装python的 MySQLdb 依赖包 本人mac操作系统 安装MySQLdb的时候出现了些小问题  最后是重装了openssl 才通过的 Spyder 是编写python的ide 2.新建项目  cd /usr/local/var/ww

python 抓取&quot;一个&quot;网站文章信息放入数据库

# coding:utf-8 import requests from bs4 import BeautifulSoup import json import time import datetime import pymysql import sys reload(sys) sys.setdefaultencoding('utf-8') # 获取文章内容方法 def getartinfo( url ): page = requests.get(url).content soup = Beaut

python 爬虫抓取心得

quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'http://music.baidu.com/search?key='+query response = urllib.urlopen(url) text = response.read()

python 爬虫抓取心得分享

/** author: insun title:python 爬虫抓取心得分享 blog:http://yxmhero1989.blog.163.com/blog/static/112157956201311821444664/ **/    0x1.urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'h

python爬虫爬取csdn博客专家所有博客内容

python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 结果如下: 版权声明:本文为博主原创文章,未经博主允许不得转载.