资源简介
抓取CSDN博客文章的简单爬虫python源码
代码片段和文件信息
# coding=utf-8
import sys
default_encoding = ‘utf-8‘
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
import urllib2
import re
import random
import time
from bs4 import BeautifulSoup
import leancloud
from leancloud import object
from leancloud import LeanCloudError
WAIT_URL = None # 检测到如果有下一篇,则先保留该网址,等到遍历上一篇结束后,重新回来遍历下一篇
SEARCH_TYPE = 1 # 1为下一篇
class Get_First_Url:
def __init__(self url2):
self.url = url2
print(‘\n‘)
print(‘开始获取第一篇博客地址‘)
print(‘博客主页地址: ‘ + self.url)
‘‘‘
这是注释
‘‘‘
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)
req = urllib2.Request(self.url)
req.add_header(‘User-Agent‘ agent)
req.add_header(‘Host‘ ‘blog.csdn.net‘)
req.add_header(‘Accept‘ ‘*/*‘)
req.add_header(‘Referer‘ ‘http://blog.csdn.net/mangoer_ys?viewmode=list‘)
req.add_header(‘GET‘ url)
html = urllib2.urlopen(req)
page = html.read().decode(‘utf-8‘)
self.page = page
self.beginurl = self.getFirstUrl()
# 得到其博客主页的第一篇文章
def getFirstUrl(self):
bs = BeautifulSoup(self.page)
html_content_list = bs.find(‘span‘ class_=‘link_title‘)
self.type = 1
if (html_content_list == None):
html_content_list = bs.find(‘h3‘ class_=‘list_c_t‘) # 不同的主题
self.type = 2
if (html_content_list == None):
return “nourl“
try:
return ‘http://blog.csdn.net‘ + html_content_list.a[‘href‘]
except Exception e:
return “nourl“
class CSDN_Blog_Spider:
def __init__(self url2 type):
self.url = url2
self.type = type
if type == 4:
global WAIT_URL
WAIT_URL = url2
print ‘已记录待爬下一篇地址‘ + url2
print(‘正在爬取网页地址: ‘ + self.url)
else:
print(‘正在爬取网页地址: ‘ + self.url)
user_agents = [
‘Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14565 2016-06-25 00:04 test.py
相关资源
- 基于opencv绘制图片的三维空间显示图
- 囚徒困境的演化博弈实现Python
- 数据处理程序
- 利用python实现基于SVM的文本分类
- python新浪微博爬虫,爬取微博和用户
- DoS攻击Python源码
- 使用训练好的模型进行预测
- python 打砖块源代码
- Python-每天定时发消息
- 实现火车票查询python.zip
- python SVM算法
- 基于python的人脸检测
-
li
nk Prediction相似性计算方法.rar - 利用Python创建ArcGis批量输出地图影工
- 利用Python创建ArcGis批量裁剪栅格工具
- 利用Python创建ArcGis裁剪工具
- PSO算法Python实现自定义函数
- Python的Nmap模块
- 教务管理系统
- python实现Apriori算法apriori.py和数据
- opc python 读取代码
- Python+Flask+sqlite实现的选课系统
- wxpython使用matplotlib的简单教程
- geoserver-rest-python-1.1
- leetcode python题解
- 基于SVM的手写字体识别Python版本
- Python RWR 可重启随机游走代码
- Python→Transorflow猫狗识别完整代码,附
- RPi.GPIO-0.6.3.tar
- python+rabird.winio实现驱动级模拟按键
评论
共有 条评论