python 站点资源链接简易爬虫

此脚本用于爬站点的下载链接,最终输出到txt文档中。

如果是没有防盗链设置的站点,也可以使用脚本中的下载函数尝试直接下载。

本脚本是为了短期特定目标设计的,如果使用它爬其它特征的资源链接需自行修改配置语句。

python初学者,请多多指正。

# -*- coding: utf-8 -*-
import re
import urllib
import os
import urllib2
import requests
import time

#download the file
def download(page, url):
	local_filename =url.split(‘/‘)[-1] + page + ‘.jpg‘
	r = requests.get(url, stream=True)
	with open(local_filename, ‘wb‘) as f:
		for chunk in r.iter_content(chunk_size = 1024):
			if chunk: # filter out keep-alive new chunks
				f.write(chunk)
                f.flush() 

	return local_filename

# download(‘123‘,‘http://cdn.woi3d.com/openfiles/86509/88619.jpg-preview‘)
# download(‘11‘, ‘http://www.cnblogs.com/images/logo_small.gif‘)

#turn the data array into urls array
def print_urls(urls):
	output_urls = []
	for link in urls:
		start_link = link.find(‘"‘)
		end_link = link.find(‘"‘, start_link+1)
		output_link = link[start_link+1: end_link]
		if output_link.find(‘http‘) == -1:
			output_link = ‘http://www.woi3d.com‘ + output_link
		if link.count(‘"‘) > 2:
			continue
		else:
			output_urls.append(output_link)
	return output_urls

def output_download_link_page(page):
	url = page
	s = urllib.urlopen(url).read()
	urls = []
	img_urls = ‘no image on‘ + page
	new_stl_urls = []

	title = re.findall(r‘<h1>.+<\/h1>‘, s, re.I)
	if len(title) != 0:
		title = title[0]
	else:
		title = ‘no title‘

	img_urls = print_urls(re.findall(r‘href=".*?\.jpg.*?"‘, s, re.I))
	if len(img_urls) != 0:
		img_urls = img_urls[0]
	else:
		img_urls = ‘no image‘ + page	

	stl_urls = print_urls (set(re.findall(r‘href="/download/.*?"‘, s, re.I)))

	for url in stl_urls:
		#url = urllib2.urlopen(url).url
		url = requests.get(url).url
		new_stl_urls.append(url)

	urls.append(title)
	urls.append(img_urls)
	urls = urls + new_stl_urls

	return urls

#print output_download_link_page(‘http://www.woi3d.com/thing/46876‘)

#output all links to download
def output_all_pages(site):
	s = urllib.urlopen(site).read()
	page = re.findall(r‘href="/thing/.*?"‘, s, re.I)
	page = set(page)
	return print_urls(page)

#output all the sites to download
def generate_sites(start, end):
	sites = []
	for  num in range(start, end):
		sites.append(‘http://www.woi3d.com/popular?query=&pg=‘ + str(num))
	return sites

#write all the results to a txt file
file_new = open (‘1.txt‘, ‘r+‘)
url_pakage = []
sites = generate_sites(40, 46)
count = 0

for site in sites:
	print site
	file_new.write( ‘\n‘ + site)
	pages = output_all_pages(site)
	for page in pages:
		urls = output_download_link_page(page)
		#
		if len(urls) >= 10:
			continue
		count = count + 1
		for url in urls:
			file_new.write(url + ‘\n‘)
	print ‘done‘
	time.sleep(10)

file_new.close()
print ‘all done. all..‘ + str(count) + ‘..models‘

  

  

时间: 2024-10-12 22:22:16

python 站点资源链接简易爬虫的相关文章

python+pyspider+phantomjs实现简易爬虫功能

本篇文章的目的有两个: 1.记录搭建爬虫环境的过程 2.总结爬虫项目的心得体会 一.系统环境 该方案在32位ubuntu10.04和64位centos6.9上面测试通过,所需要用到的软件如下: 1.ubuntu10.04或者centos6.9任选其一,下文主要以centos6.9来说明 2.pyspider源代码,可以从这里下载到http://download.csdn.net/detail/king_bingge/8582249,也可以从官网下载https://github.com/binux

Python爬虫: &quot;追新番&quot;网站资源链接爬取

"追新番"网站 追新番网站提供最新的日剧和日影下载地址,更新比较快. 个人比较喜欢看日剧,因此想着通过爬取该网站,做一个资源地图 可以查看网站到底有哪些日剧,并且随时可以下载. 资源地图 爬取的资源地图如下: 在linux系统上通过 ls | grep keywords 可以轻松找到想要的资源(windows直接搜索就行啦) 爬取脚本开发 1. 确定爬取策略 进入多个日剧,可以查看到每个剧的网址都是如下形式: 可以看出,每个日剧网页都对应一个编号. 因此我们可以通过遍历编号来爬取. 2

使用 HttpClient 和 HtmlParser 实现简易爬虫_Linux !

body { font-family: Lucida Console; font-size: 12pt; line-height: 1.5; } html, body { color: ; background-color: ; } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { font-size:1.3em; font-weight:bold; } h4 { fo

使用 HttpClient 和 HtmlParser 实现简易爬虫

这篇文章介绍了 HtmlParser 开源包和 HttpClient 开源包的使用,在此基础上实现了一个简易的网络爬虫 (Crawler),来说明如何使用 HtmlParser 根据需要处理 Internet 上的网页,以及如何使用 HttpClient 来简化 Get 和 Post 请求操作,构建强大的网络应用程序. 源文地址:http://www.ibm.com/developerworks/cn/opensource/os-cn-crawler/ HttpClient 与 HtmlPars

[转]使用 HttpClient 和 HtmlParser 实现简易爬虫

http://www.ibm.com/developerworks/cn/opensource/os-cn-crawler/ http://blog.csdn.net/dancen/article/details/7570911 HttpClient 与 HtmlParser 简介本小结简单的介绍一下 HttpClinet 和 HtmlParser 两个开源的项目,以及他们的网站和提供下载的地址. HttpClient 简介HTTP 协议是现在的因特网最重要的协议之一.除了 WEB 浏览器之外,

python开发的 dht网络爬虫

使用 libtorrent 的python绑定库实现一个dht网络爬虫,抓取dht网络中的磁力链接. dht 网络简介 p2p网络 在P2P网络中,通过种子文件下载资源时,要知道资源在P2P网络中哪些计算机中,这些传输资源的计算机称作peer.在传统的P2P网络中,使用tracker服务器跟踪资源的peer.要下载资源,首先需要取得这些peer. dht网络 tracker服务器面临一些版权和法律问题.于是出现了DHT,它把tracker上的资源peer信息分散到了整个网络中.dht网络是由分布

利用简易爬虫完成一道基础CTF题

利用简易爬虫完成一道基础CTF题 声明:本文主要写给新手,侧重于表现使用爬虫爬取页面并提交数据的大致过程,所以没有对一些东西解释的很详细,比如表单,post,get方法,感兴趣的可以私信或评论给我.如果文中有哪些问题,也欢迎大家指正. Written by Menglin Ma 写在前面 ??如果有想学习基础爬虫的同学,建议在中国大学MOOC上搜索嵩天老师的爬虫课程,讲的真的很细致,也很基础. ??想入门CTF的同学,给你们推荐个基础的网站,上面的好多题对新手比较友好:www.shiyanbar

Python 和 Elasticsearch 构建简易搜索

Python 和 Elasticsearch 构建简易搜索 作者:白宁超 2019年5月24日17:22:41 导读:件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装.只有它们都正确,软件才能运行.如果从一种操作系统里面运行另一种操作系统,通常我们采取的策略就是引入虚拟机,比如在 Windows 系统里面运行 Linux 系统.这种方式有个很大的缺点就是资源占用多.冗余步骤多.启动慢.目前最流行的 Linux 容器解决方案之一就是Docker,它最大优点就是轻量.资源占用少.

【Bootstrap】3.优化站点资源、完成响应式图片、让传送带支持手势

A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap]2.作品展示站点 中的资源.特别的,来看一看我们能控制的.影响页面速度的重要因素 —— 文件大小,包括图片.CSS和 JavaScript 文件.只要简单几步,我们就可以给这些文件“瘦身”,缩短加载时间. A.1 优化图片 这些图片都通过 Photoshop 的 “保存为 Web 格式” 进行了一