使用了多线程但没有处理同步。
正则表达式是用kodos弄出来的,这个工具使用起来比较顺手。
#!/usr/bin/env python
#coding=cp936
import re
import urllib
import thread
import time
#url_part1 = '''http://images.google.cn/images?q='''
#url_part2 = '''&svnum=10&hl=zh-CN&lr=&newwindow=1&start='''
#url_part3 = '''&sa=N'''
url_part1 = '''http://image.baidu.com/i?z=0&cl=2&ct=201326592&sn=&lm=-1&cm=1&sc=0&bu=&rn=16&tn=baiduimage&word='''
url_part2 = '''&pn='''
def nextpage(keywords,start):
return url_part1 + urllib.quote(keywords) + url_part2 + str(start)
#compile_obj = re.compile(r'dyn.Img\("http://(.)+","","","')
compile_obj = re.compile(r'<a href="http://image.baidu.com/ir\?t=1&u=http://(.)+&f=http://')
def parseurl(content):
ret = []
match_objs = compile_obj.finditer(content)
for match in match_objs:
url = match.group().split('&')[1][2:]
ret.append(url)
return ret
#exitdic = {}
def downimg(url,exitdic):
filename = url.split('/')[-1]
#print url,'---->',filename
urllib.urlretrieve(url,filename)
exitdic[url].acquire()
def download(url):
exitdic = {}
print '开始下载页面: ' + url
conn = urllib.urlopen(url)
content = conn.read()
conn.close()
urls = parseurl(content)
for url in urls:
print url
exitdic[url] = thread.allocate_lock()
thread.start_new(downimg,(url,exitdic))
for key in exitdic.keys():
while not exitdic[key].locked():
#time.sleep(200)
pass
print '完成一页'
#抓取关键字为vista的图片,抓取范围为查询结果的第4到8页
if __name__ == '__main__':
for i in range(4,8):
url = nextpage('vista',i*16)
download(url)
print 'OK'
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Java编程语言和Spring Boot框架来实现百度图片的抓取与下载功能。首先,我们需要了解几个关键的概念和技术。 **Java** 是一种广泛使用的面向对象的编程语言,它以其跨平台的特性而...
在本项目案例中,我们将深入探讨Python编程在爬虫应用中的实际操作,特别是如何利用Python来抓取并下载百度图片。这个案例旨在帮助初学者掌握网络爬虫的基本技术和流程,同时也为进阶开发者提供了一个实战练习的机会...
在这个主题中,我们将探讨如何使用Python来抓取百度云分享的数据,特别是利用百度云最新的API接口。这通常涉及到请求、解析HTML或JSON响应、处理验证码以及可能的反爬策略。 首先,要抓取百度云分享的数据,我们...
Python3爬虫抓取百度图片中的图片,可根据需求输入关键字、图片数量
这表明,百度在收录图片时,图片格式将作为一个信息点被抓取并建立索引。用户可以根据图片格式来筛选图片,这大大提高了搜索的效率。 第二,图片的抓取时间也是一个重要的检索条件。百度对于新抓取的图片会在搜索...
标题中的“自己写的一个网站图片抓取程序”指的是一个用Go语言编写的程序,它的主要功能是自动从网站上下载并收集图片。这种程序通常用于数据挖掘、网站备份或者图像分析等场景。开发者可能在编写这个程序时考虑了...
php 抓取百度搜索结果脚本,php命令行下运行
python爬虫,抓取百度图片存储到本地文件夹中,可以修改关键字,所需图片的长宽
这段代码是一个Python爬虫程序,用于从百度图片搜索中抓取指定关键词的图片。程序通过设置超时时间和请求头等参数,实现了对百度图片搜索结果的访问和解析。程序的主要功能包括: 1. 定义了一个名为`Crawler`的类...
总的来说,"百度地图抓取软件"VER4.0是一款面向地图数据获取和管理的工具,它可以帮助用户便捷地获取百度地图的信息,但使用时务必谨慎,确保操作合规。对于开发者而言,了解如何合法、高效地获取和使用地图数据,是...
在这个项目中,"qt写的抓取网页图片并保存到本地",开发者利用QT的网络编程和文件操作功能,实现了一个小型的爬虫程序。这个程序可以解析指定URL的网页内容,从中提取出所有的图片链接,并将这些图片下载保存到本地...
东东tools,JD CK抓取提交工具,支持JDX
本程序可以抓取指定IE窗口中已下载完毕的网页中的全部或部分图片(可根据图片文件后缀和图片所属站点的域名过滤,也可以对单个图片进行选取),对于选中的图片,可以: 1)抓取文件URL列表,可以转换为UBB代码或HTML...
总的来说,通过结合C#的HttpWebRequest类和Winform的用户界面功能,我们可以构建一个简单但实用的百度网页内容抓取工具。这不仅有助于学习HTTP通信和网页抓取,还可以作为进一步开发更复杂网络爬虫的基础。
综上所述,百度地图数据抓取是一个涉及编程、网络协议、数据处理、GIS应用以及法律伦理的综合过程。在进行此类操作时,开发者需要了解并遵守相关的规则和最佳实践,以确保其行为的合法性和安全性。
在这个项目中,很可能开发者创建了一个用户界面,用户可以在其中输入关键词,然后应用通过调用百度地图API来搜索和显示相关地址。 在实际操作中,抓取大量数据时必须遵守百度地图的使用条款和条件,避免过度请求或...
【标题】:“抓取MM图片”这一主题涉及的是网络图像数据的采集技术,特别是针对特定类型(例如“MM”,通常指的是美女图片)的图片进行抓取。这在互联网上广泛应用于个人兴趣、数据分析或者网站内容的自动更新。在这...
这个是一个python脚本,加入了动态代理,主要做的就是实现百度百科自动抓取
图片抓取是爬虫的一个重要部分,主要是找到HTML中的`<img>`标签,提取其`src`属性值作为图片URL。此外,还需处理CSS背景图片,这通常隐藏在CSS规则中。CSS中引用图片的方式有以下几种: 1. `background-image`属性:...