例子,python网页爬虫实例,实现博客文章抓取的python爬虫。 代码示例:

#!/usr/bin/python

#-*-coding:utf-8-*-

# JCrawler

# Author: Jam <810441377@qq.com>

#python爬虫 示例

import time

import urllib2

from bs4 import BeautifulSoup

# 目标站点

TargetHost = "http://adirectory.blog.com"

# User Agent

UserAgent  = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36'

# 链接采集规则

# 目录链接采集规则

CategoryFind    = [{'findMode':'find','findTag':'div','rule':{'id':'cat-nav'}},

{'findMode':'findAll','findTag':'a','rule':{}}]

# 文章链接采集规则

ArticleListFind = [{'findMode':'find','findTag':'div','rule':{'id':'content'}},

{'findMode':'findAll','findTag':'h2','rule':{'class':'title'}},

{'findMode':'findAll','findTag':'a','rule':{}}]

# 分页URL规则

PageUrl  = 'page/#page/'

PageStart = 1

PageStep  = 1

PageStopHtml = '404: Page Not Found'

def GetHtmlText(url):

request  = urllib2.Request(url)

request.add_header('Accept', "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp")

request.add_header('Accept-Encoding', "*")

request.add_header('User-Agent', UserAgent)

return urllib2.urlopen(request).read()

def ArrToStr(varArr):

returnStr = ""

for s in varArr:

returnStr += str(s)

return returnStr

def GetHtmlFind(htmltext, findRule):

findReturn = BeautifulSoup(htmltext)

returnText = ""

for f in findRule:

if returnText != "":

findReturn = BeautifulSoup(returnText)

if f['findMode'] == 'find':

findReturn = findReturn.find(f['findTag'], f['rule'])

if f['findMode'] == 'findAll':

findReturn = findReturn.findAll(f['findTag'], f['rule'])

returnText = ArrToStr(findReturn)

return findReturn

def GetCategory():

categorys = [];

htmltext = GetHtmlText(TargetHost)

findReturn = GetHtmlFind(htmltext, CategoryFind)

for tag in findReturn:

print "[G]->Category:" + tag.string + "|Url:" + tag['href']

categorys.append({'name': tag.string, 'url': tag['href']})

return categorys;

def GetArticleList(categoryUrl):

articles = []

page = PageStart

#pageUrl = PageUrl

while True:

htmltext = ""

pageUrl  = PageUrl.replace("#page", str(page))

print "[G]->PageUrl:" + categoryUrl + pageUrl

while True:

try:

htmltext = GetHtmlText(categoryUrl + pageUrl)

break

except urllib2.HTTPError,e:

print "[E]->HTTP Error:" + str(e.code)

if e.code == 404:

htmltext = PageStopHtml

break

if e.code == 504:

print "[E]->HTTP Error 504: Gateway Time-out, Wait"

time.sleep(5)

else:

break

if htmltext.find(PageStopHtml) >= 0:

print "End Page."

break

else:

findReturn = GetHtmlFind(htmltext, ArticleListFind)

for tag in findReturn:

if tag.string != None and tag['href'].find(TargetHost) >= 0:

print "[G]->Article:" + tag.string + "|Url:" + tag['href']

articles.append({'name': tag.string, 'url': tag['href']})

page += 1

return articles;

print "[G]->GetCategory"

Mycategorys = GetCategory();

print "[G]->GetCategory->Success."

time.sleep(3)

for category in Mycategorys:

print "[G]->GetArticleList:" + category['name']

GetArticleList(category['url'])

python网页爬虫程序示例代码

Python web爬虫的小例子

python 网络爬虫(经典实用型)

python网络爬虫的代码

python编写分布式爬虫的思路

python 论坛爬虫代码_python博客文章爬虫实现代码相关推荐

  1. 使用Python爬取CSDN历史博客文章列表,并生成目录

    使用Python爬取CSDN历史博客文章列表,并生成目录 这篇博客将介绍如何使用Python爬取CSDN历史博客文章列表,并生成目录. 2020年 2020年04月 cv2.threshold() 阈 ...

  2. WordPress在博客文章中添加代码片段

    我是通过WordPress插件CodeColorer来达到目的的, 安装好CodeColorer后,可以在设置->codecolorer中看到 使用方法: [cc lang="编程语言 ...

  3. python爬取控制台信息_python爬虫实战之爬取智联职位信息和博客文章信息

    1.python爬取招聘信息 简单爬取智联招聘职位信息 # !/usr/bin/env python # -*-coding:utf-8-*- """ @Author  ...

  4. python小爬虫(爬取职位信息和博客文章信息)

    1.python爬取招聘信息 简单爬取智联招聘职位信息(仅供学习) # !/usr/bin/env python # -*-coding:utf-8-*- """ @Au ...

  5. app python搭建_Django搭建个人博客:创建并配置APP功能模块

    创建APP 在Django中的一个app代表一个功能模块.开发者可以将不同功能的模块放在不同的app中, 方便代码的复用.app就是项目的基石,因此开发博客的第一步就是创建新的app,用来实现跟文章相 ...

  6. Python爬虫自学与实战,爬一下自己的博客文章

    文章目录 1. 什么是爬虫 2. 学习爬虫的必备知识 3. 环境准备 4. 爬虫的第一步,获取网页的HTML内容 4.1 GET 4.2 POST 5. 使用BeautifulSoup模块来从HTML ...

  7. python爬取新浪博客_python网络爬虫 新浪博客篇

    上次写了一个爬世纪佳缘的爬虫之后,今天再接再厉又写了一个新浪博客的爬虫.写完之后,我想了一会儿,要不要在博客园里面写个帖子记录一下,因为我觉得这份代码的含金量确实太低,有点炒冷饭的嫌疑,就是把上次的代 ...

  8. 是否担心别人将你的博客文章全部爬下来?3行代码教你检测爬虫

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于Python实用宝典 ,作者Python实用宝典 是否担心别人将你 ...

  9. Python爬虫入门实战1:获取CSDN个人博客文章目录及阅读量数据

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036 ░ 一.引言 有阵子博客的访问量出现了比较大 ...

最新文章

  1. 一次次小进步,从毕业开始,你到现在飞跃了几次了,程序人生也不容易?
  2. RabbitMQ-从基础到实战(3)— 消息的交换(上)
  3. 正则表达式:Pattern 与Matcher
  4. 图解10大机器学习算法
  5. 使用默认方法进行接口演化–第二部分:接口
  6. nginx优化(经典)
  7. 深入浅出JS:Two
  8. C++11的dynamic_cast
  9. 搜索引擎的原理以及倒排索引技术
  10. 模乘与Montgomery 模乘
  11. 基本类型偏执-平行继承体系-令人着迷的暂时值域
  12. [附源码]Python计算机毕业设计SSM基于Yigo平台库房管理系统(程序+LW)
  13. nlp对语料进行分类_如何使用nlp对推文进行分类
  14. java 汉字转拼音_java中将汉字转换成拼音的实现代码
  15. 运动会分数统计(数据结构课程设计)
  16. 关于VMware上的VAAI特性详解
  17. 运用MATLAB批量读取excel表格
  18. leetcode844,难度easy
  19. Android网络框架Volley项目实战-刘桂林-专题视频课程
  20. 新一代液晶按键网银USBkey安全分析

热门文章

  1. 训练TFlite模型
  2. 30分钟让采购人评估供应商方法:工厂速评法
  3. css3宽度变大动画_电工不会仪表?太尴尬了。14种动画让你轻松掌握各种流量计工作原理。...
  4. 一文看懂C语言链表(原创) --- 包含完整代码
  5. MSSQL数据库日志的压缩与清除技巧
  6. 【无标题】高压输电线路在线监测的重要性
  7. java condition原理_java中Condition接口原理及实现
  8. extends 与 implements 的区别 !
  9. 振涛教育云计算学院2206A班荣中伟
  10. 3D Vision 八讲:第四讲