python爬虫实战1
转载于:http://blog.csdn.net/dongnanyanhai/article/details/5552431
首先推荐一个网站:中医世家,这个网站上有很多关于中医的资料,光是提供的中医书籍就有317Mb,全都是CHM格式,资料非常全面。
正因为这个网站有这么多的好东西,但是我又懒得一本书一本书的下载,所以,我就……用Python直接解析了几个书籍下载页面的地址,把所有的书籍的下载地址都弄到手,顺便还下载了,呵呵呵,省得一个页面一个页面的打开!
#!/usr/bin/env python
#coding=utf-8
#这段代码是用来下载“中医世家”网站上的书籍的,很不好意思了!
import urllib2,urllib,os
from BeautifulSoup import BeautifulSoup
#定义书籍链接列表
mainbooklink = ["http://www.zysj.com.cn/lilunshuji/1index.html",
"http://www.zysj.com.cn/lilunshuji/5index.html",
"http://www.zysj.com.cn/lilunshuji/20index.html",
"http://www.zysj.com.cn/lilunshuji/25index.html"]
bookdir = [u"d://book//中医教材//",u"d://book//中医著作//",u"d://book//实用手册//",
u"d://book//西医备考//"]
chmname = [] #chm电子书中文名字
chmbooklink = [] #对应chm的下载地址
#该函数实现获取一个地址后马上下载该书籍
def getbooklink(url):
#检测url地址——暂时略了! #获取url地址的网页,并使用BeautifulSoup进行解析
page = urllib2.urlopen(url)
soup = BeautifulSoup(page) #处理url,取得其前部地址,用以确定下面得到的地址的完全地址
#urllen = len(url) for i in soup('li'):
#print i.a.string.encode('gb2312'),i.a['href']
chmfilename = i.a.string
bookfilelink = "http://www.zysj.com.cn"+i.a['href'] page = urllib2.urlopen(bookfilelink)
soup =BeautifulSoup(page)
ti = u"下载电子书:"+chmfilename+".chm"
for k in soup('a',title = ti):
chmname.append(chmfilename+'.chm')
downlink = "http://www.zysj.com.cn"+k['href']
chmbooklink.append(downlink)
print chmfilename.encode('gb2312')+'.chm',downlink
def downbook(filename,url,dirn):
#urllib.urlretrieve(url, filename)
if not os.path.exists(bookdir(dirn)):
os.makedirs(bookdir(dirn)) print "开始下载:".decode('utf-8').encode('gb2312'),filename.encode('gb2312')
filename = bookdir[dirn]+filename
urllib.urlretrieve(url,filename)
print "下载完成!".decode('utf-8').encode('gb2312') if __name__=="__main__":
dirn = 0
for i in mainbooklink:
getbooklink(i)
for j in range(0,len(chmname)):
downbook(chmname[j],chmbooklink[j],dirn)
chmname = []
chmbooklink = []
dirn = dirn+1 """
这一小段代码是用来学习查找字符串里面出现的某个字符的呃位置,我把所有的位置都取出来了,接下来想怎样就能怎样了!
a ="http://www.zysj.com.cn/lilunshuji/1index.html"
b = 0
c = len(a)
while 1:
b = a.find('/',b,c)
print b
b = b + 1
if b == 0:
break
"""
这段代码中缺了对空格的检测,所以好几部关于中医的字典是没有被解析出来的,只能手工下了,不多!
python爬虫实战1的更多相关文章
- 【图文详解】python爬虫实战——5分钟做个图片自动下载器
python爬虫实战——图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,(没看的先去看!!)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap sho ...
- Python爬虫实战(4):豆瓣小组话题数据采集—动态网页
1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...
- Python爬虫实战(2):爬取京东商品列表
1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反 ...
- Python爬虫实战四之抓取淘宝MM照片
原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...
- Python爬虫实战---抓取图书馆借阅信息
Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...
- Python爬虫实战七之计算大学本学期绩点
大家好,本次为大家带来的项目是计算大学本学期绩点.首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的 ...
- Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺
更新 其实本文的初衷是为了获取淘宝的非匿名旺旺,在淘宝详情页的最下方有相关评论,含有非匿名旺旺号,快一年了淘宝都没有修复这个. 可就在今天,淘宝把所有的账号设置成了匿名显示,SO,获取非匿名旺旺号已经 ...
- Python爬虫实战六之抓取爱问知识人问题并保存至数据库
大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...
- Python爬虫实战五之模拟登录淘宝并获取所有订单
经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 温馨提示 更新时间,2016-02-01,现在淘宝换成了滑块验证了 ...
- Python爬虫实战三之实现山东大学无线网络掉线自动重连
综述 最近山大软件园校区QLSC_STU无线网掉线掉的厉害,连上之后平均十分钟左右掉线一次,很是让人心烦,还能不能愉快地上自习了?能忍吗?反正我是不能忍了,嗯,自己动手,丰衣足食!写个程序解决掉它! ...
随机推荐
- Android开发匹配字符笔记
Windows下的回车换行符是\r\n,而Linux下的回车换行符是\n 所以,在windows下可以用\r\n,而在linux下要用\n 并且还发现在linux下(既在android上开发)需要匹配 ...
- Android应用开发基础篇(3)-----ListView
一.概述 ListView是一个列表显示控件,它的应用非常广泛,在很多应用程序中都可以看到它的身影,比如来电通,网易新闻等等,特别是QQ.因此非常有必要熟练掌握它. 二.要求 能够利用ListView ...
- ubuntu之iptables
1.更新iptables并立即生效: a.保存当前设置:iptables-save > /etc/iptables.up.rules b.修改iptables规则: 例如: -I INPUT - ...
- 前缀 树 背单词(Remember the Word,LA 3942)
已哭瞎. 搞了2个多小时的错误居然是在 没有初始化............教训:每个例子一定要考虑到初始化问题.! 每个节点存了一个数组 该数组记录的有26个大小 0-25分别表示记录表示'a' ...
- SSIS: 使用Lookup 和 Cache transformation 进行数据匹配简单介绍
本文将讲解Cache transformation的使用方式,并且用Lookup transformation进行匹配. 背景 如下图,我们的产品目标表中有些有尺寸信息有些没有.我们需要用Cache组 ...
- 使用wininet向FTP服务器发送文件
.h #pragma once #include <windows.h> #include <tchar.h> #include <string> #include ...
- C语言格式化输出,空位补0,空位补空格
char strTtimeDump[512] = ""; int a = 5; sprintf(strTtimeDump, "%.4d", a); //strT ...
- centos6.5 升级python 到 python 2.7.11 安装 pip
1.首先官方下载源码,然后安装(./configure,make all,make install,make clean,make distclean) 注意:需要先安装zlib-devel,open ...
- C#指定目录存放DLL
C#开发中,常常会用到不少扩展库,把这些扩展库的大量DLL放在软件目录下面,非常不美观. 通过设置自定义的DLL存放目录,可以把DLL存在指定的目录下面. 代码如下: <?xml version ...
- python 以面向对象的方式创建线程 实现售票系统
---恢复内容开始--- 转载或借鉴请注明转自http://www.cnblogs.com/FG123/p/5068556.html 谢谢! 通过面向对象的方法实现多线程,其核心是继承thread ...