最终版:前几个版本(见本人的以前文章)基本都是用正则表达式实现匹配得到下载链接的,弊端有两方面:1。由于所 分析的网页很有规律,所以正则表达式实现起来过于繁琐,肯定不合适 2。各个任务之间都不不同,每次都重新编码,实现起来毫无规律,没有扩展性。所以此篇文章为这个专题的最终版,以后还有更多东西要学习,就不要在着方面纠缠了。
可执行版本:这次终于可以出一个自己比较满意的可执行版本,所以贴出源代码,作为这段工作的总结。相关的其他资源的获取,都可以由以下代码扩展之,而且相当简单,所以不再提供
运行要求:必须先下载和安装python-2.4.2.msi ,配置好Python环境;单击start.bat即可实现批量下载
源代码: 本工程只包括两个文件start.bat 和CustomParser.py:
start.bat
//make the dir for files and run the project
mkdir files
python CustomParser.py
CustomParser.py
from sgmllib import SGMLParser
from string import find, replace, rjust
from threading import Thread
import urllib
__author__ = "Chen Peng (peng.ch@hotmail.com)"
__version__ = "$Revision: 1.0 $"
__date__ = "$Date: 2006/03/03 $"
__copyright__ = "Copyright (c) 2006 Chen Peng"
__license__ = "Python"
__all__ = ["Gif_163_Parser"]
class PDownloadThread( Thread ):
"""
Download the files in the dict and save them to local files with the given name
"""
def __init__( self, DictList,i ):
Thread.__init__( self )
self.DictList=DictList
self.pageno=str(i);
def run( self ):
for k in self.DictList.keys():
try:
print 'Download'+self.DictList[k]+'......'
uFile=urllib.urlretrieve( self.DictList[k], '.files'+k+'.'+self.DictList[k].split('.')[self.DictList[k].split('.').__len__()-1])
except :
logfile = open('error.log', 'a')
logfile.write(self.pageno+' '+self.DictList[k]+' '+k+'n')
logfile.close()
print 'Save to file '+k
class Gif_163_Parser( SGMLParser ):
"""
任务:下载163彩图
原理:http://mms.163.com/new_web/cm_lv2_pic.jsp?catID=&ord=dDate&page=2&type=1&key=
从1到415页(共6637)分析得到如下路径:“/fgwx/hhsj/1_060302175613_186/128x128.gif”
eg:<script>showPic('22930','1','/fgwx/hhsj/1_060302175613_186/128x128.gif','1','编号:22930n名字: 因为有你n人气:100');</script>
下载路径:http://mmsimg.163.com/new_web/loaditem.jsp/type=1/path=/fgwx/llfj/1_060302175612_995/176x176.gif
"""
def reset( self ):
SGMLParser.reset( self )
self.headURL='http://mmsimg.163.com/new_web/loaditem.jsp/type=1/path='
self.SubURL = []
self.Links = {}
def start_script( self, attrs ):
#self.SubURL.extend( [' %s="%s"' % ( key, value ) for key, value in attrs] )
pass
def end_script( self ):
pass
def handle_data( self, text ):
if find( text, 'showPic' )!=-1:
self.Links[replace( text.split( 'n' )[1], 'xc3xfbxd7xd6: ', '' )]=self.headURL+replace ( text.split( ',' )[2], ''', '' );
def Execute( self ):
for i in range( 1, 415 ):
self.Links.clear;
try:
usock = urllib.urlopen( "http://mms.163.com/new_web/cm_lv2_pic.jsp?catID=&ord=dDate&page="+str(i)+"&type=1&key=" )
self.feed( usock.read() )
usock.close()
TestThread=PDownloadThread( self.Links ,i)
TestThread.start()
self.close()
except IOError:
pass
#print ( ["%s=%sn"% ( k, self.Links[k] ) for k in self.Links.keys()] )
#print self.Links
if __name__ == '__main__':
#Gif_163_Parser().Execute();
testtask=Gif_163_Parser()
testtask.Execute()
分享到:
相关推荐
之前给大家分享的python 多线程抓取网页,不过这个只能用python 来抓取到网页的源代码,如果你想用做python 下载文件的话,上面的可能就不适合你了,最近我在用python 做文件下载的时候就遇到这个问题了,不过最终...
要通过Python实现查百度收录,可以按照以下描述进行操作: 导入所需模块:首先,导入所需的模块,如requests、re等。requests模块用于发送HTTP请求获取网页内容,re模块用于正则表达式匹配。 构造URL:根据百度...
最近本人正在学习python网络爬虫,尝试实现爬取网页图片,通过对网上一些相关博客的学习,目前初步实现,分享一下实现代码。 爬取图片的目标网页是https://findicons.com/pack/2787/beautiful_flat_icons: 1. 获取...
其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...
本文实例讲述了Python视频爬虫实现下载头条视频功能。分享给大家供大家参考,具体如下: 一、需求分析 抓取头条短视频 思路: 分析网页源码,查找解析出视频资源url(查看源代码,搜mp4) 对该url发起请求,返回二...
在上篇文章给大家分享PHP源码批量抓取远程网页图片并保存到本地的实现方法,感兴趣的朋友可以点击了解详情。 #-*-coding:utf-8-*- import os import uuid import urllib2 import cookielib '''获取文件后缀名''' ...
网络爬虫抓取特定网站网页的html数据,但是一个网站有上千上万条数据,我们不可能知道网站... 绿线是数据流向,首先从初始URL 开始,Scheduler 会将其交给 Downloader 进行下载,下载之后会交给 Spider 进行分析,Spi
其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...
我们需要先获取QQ群中的所有成员并保存到一个txt文本中去,然后再由python读取文件然后进行批量邮件发送了,具体解决方案如下: 1. 获取QQ群成员QQ号码,QQ群成员信息可以在如下网页中获取,选择全部成员保存在txt中...
其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...
项目概述:基于Python的Django框架开发的智能商品评论情感分析系统,旨在帮助用户通过上传评论数据进行模型训练或单条评价预测。该系统包含Web前端展示与后端逻辑处理,涉及的主要技术栈有Python、JavaScript、CSS、...
案例故事:有一天测试经理发给我一个Bug列表, 这些Bug都是被开发打回来的无效(WithDrawn)Bug, 就是开发不认为是bug, ...Python的webbrowser 模块,可以轻松地实现打开网页url openpyxl是首选的excel解析模块。 Pytho
其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...
其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...
其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...
如果您下载了本程序,但是该程序无法运行,或者您不会部署,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。...
其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...