博客
关于我
[07]抓取简书|博客园|CSDN个人主页制作目录
阅读量:617 次
发布时间:2019-03-13

本文共 3673 字,大约阅读时间需要 12 分钟。

如何抓取简书、博客园及CSDN个人主页目录

本文将介绍如何使用Python编写爬虫脚本,抓取简书、博客园及CSDN等平台用户个人主页的文章目录。基于实际使用需求,代码注释详细,直接阅读即可理解实现逻辑。

简书个人主页目录抓取

代码概述

# -*- coding:utf-8 -*-
import urllib.request
from lxml import etree
class CrawlJs:
def getArticle(self, url):
print('开始爬取数据')
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'
}
request = urllib.request.Request(url, headers=headers)
content = urllib.request.urlopen(request).read()
return content
def save(self, content):
xml = etree.HTML(content)
title = xml.xpath('//div[@class="content"]/a[@class="title"]/text()')
link = xml.xpath('//div[@class="content"]/a[@class="title"]/@href')
for t, l in zip(title, link):
with open('JsIndex.txt', 'a') as f:
f.write(f'[{t}]({l})\n')
print('爬取完成')
if __name__ == '__main__':
page = int(input('请输入要抓取的页码总数:'))
for num in range(page):
url = f'http://www.jianshu.com/u/c475403112ce?order_by=shared_at&page={num + 1}'
js = CrawlJs()
content = js.getArticle(url)
js.save(content)

代码功能说明

  • getArticle函数:负责向指定URL发送请求,获取网页内容
  • save函数:解析获取的网页内容,提取文章标题和链接,并将数据保存到本地文件中
  • 主程序:接收用户输入的页码总数,循环爬取每一页面的内容并保存
  • 博客园个人主页目录抓取

    # -*- coding:utf-8 -*-
    import urllib2
    from lxml import etree
    class CrawlJs:
    def getArticle(self, url):
    print('开始爬取数据')
    headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'
    }
    request = urllib2.Request(url, headers=headers)
    content = urllib2.urlopen(request).read()
    return content
    def save(self, content):
    xml = etree.HTML(content)
    title = xml.xpath('//div[@class="postTitle"]/a/text()')
    link = xml.xpath('//div[@class="postTitle"]/a/@href')
    for t, l in zip(title, link):
    with open('bokeyuan.txt', 'a') as f:
    f.write(f'{t} {l}\n')
    print('爬取完成')
    if __name__ == '__main__':
    page = int(input('请输入要抓取的页码总数:'))
    for num in range(page):
    url = f'http://www.cnblogs.com/zhouxinfei/default.html?page={num + 1}'
    js = CrawlJs()
    content = js.getArticle(url)
    js.save(content)

    代码特点

  • URL请求处理:使用urllib2库发送请求,模拟浏览器访问
  • HTML解析:通过lxml.etree库解析网页内容,提取需要的文章信息
  • 文件保存:将爬取到的文章标题和链接保存到本地文本文件中
  • CSDN个人文章目录抓取

    # -*- coding:utf-8 -*-
    import urllib.request
    from lxml import etree
    class CrawlJs:
    def getArticle(self, url):
    print('开始爬取数据')
    headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'
    }
    request = urllib.request.Request(url, headers=headers)
    content = urllib.request.urlopen(request).read()
    return content
    def save(self, content):
    xml = etree.HTML(content)
    title = xml.xpath('//div[@class="article-list"]/div/h4/a/text()[2]')
    link = xml.xpath('//div[@class="article-list"]/div/h4/a/@href')
    if not title:
    return
    for t, l in zip(title, link):
    with open('csdn.txt', 'a') as f:
    f.write(f'{t.strip()} {l}\n')
    print('爬取完成')
    if __name__ == '__main__':
    page = int(input('请输入要抓取的页码总数:'))
    for num in range(page):
    url = f'https://blog.csdn.net/xc_zhou/article/list/{num + 1}'
    js = CrawlJs()
    content = js.getArticle(url)
    js.save(content)

    代码特点

  • 多页面抓取:支持连续爬取多个页面的文章目录
  • 文件命名规则:输出文件命名包含文章标题,避免重复
  • 简洁数据存储:以文本文件形式存储爬取结果,便于后续处理
  • 以上代码均支持多页面抓取,用户可根据实际需求调整爬取范围和存储路径。

    你可能感兴趣的文章
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO三大组件基础知识
    查看>>
    NIO与零拷贝和AIO
    查看>>
    NIO同步网络编程
    查看>>
    NIO基于UDP协议的网络编程
    查看>>
    NIO笔记---上
    查看>>
    NIO蔚来 面试——IP地址你了解多少?
    查看>>
    NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
    查看>>
    NISP国家信息安全水平考试,收藏这一篇就够了
    查看>>
    NIS服务器的配置过程
    查看>>
    Nitrux 3.8 发布!性能全面提升,带来非凡体验
    查看>>
    NiuShop开源商城系统 SQL注入漏洞复现
    查看>>
    NI笔试——大数加法
    查看>>
    NLog 自定义字段 写入 oracle
    查看>>
    NLog类库使用探索——详解配置
    查看>>
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    NLP 模型中的偏差和公平性检测
    查看>>