没得事就爬一下我喜欢的海贼王上的图片

须要在d盘下建立一个imgcache目录

# -*- coding: utf-8 -*-

import urllib
import urllib2 import json
from bs4 import BeautifulSoup
import threadpool
import thread
class htmlpaser:
def __init__(self):
self.url='http://1.hzfans.sinaapp.com/process.php'
#POST数据到接口
def Post(self,postdata):
# headers = {
# 'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'
# }
# data = urllib.urlencode(postdata)
# req = urllib2.Request(self.url,data,headers)
# resp = urllib2.urlopen(req,None,20)
# html = resp.read()
# return html
data = urllib.urlencode(postdata)
req = urllib2.Request(url, data)
html= urllib2.urlopen(req).read()
print html
#获取html内容
def GetHtml(self,url):
headers = {
'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'
}
req = urllib2.Request(url,None,headers)
resp = urllib2.urlopen(req,None,5)
html = resp.read()
#return html.decode('utf8')
return html
def GetHtml2(self,url):
page = urllib.urlopen(url)
html = page.read()
page.close()
return html
def GetHtml3(self,url):
req_header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept':'text/html;q=0.9,*/*;q=0.8',
'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding':'gzip',
'Connection':'close',
'Referer':None #注意假设依旧不能抓取的话,这里能够设置抓取站点的host
}
req_timeout = 5
req = urllib2.Request(url,None,req_header)
resp = urllib2.urlopen(req,None,req_timeout)
html = resp.read()
return html
def GetList(self,html):
soup = BeautifulSoup(''.join(html))
baseitem=soup.find('ul',{'class':'list'})
slist=baseitem.select('li a')
return slist def DownImg(self,imgurl):
path= r"d:/imgcache/"+self.gGetFileName(imgurl)
data = urllib.urlretrieve(imgurl,path)
return data
def gGetFileName(self,url):
if url==None: return None
if url=="" : return ""
arr=url.split("/")
return arr[len(arr)-1]
def mkdir(path):
import os
path=path.strip()
path=path.rstrip("\\")
# 推断路径是否存在
# 存在 True
# 不存在 False
isExists=os.path.exists(path)
# 推断结果
if not isExists:
# 假设不存在则创建文件夹
# 创建文件夹操作函数
os.makedirs(path)
return True
else:
# 假设文件夹存在则不创建,并提示文件夹已存在
return False
#返回两个值
def ParseContent(self,html):
soup = BeautifulSoup(''.join(html))
baseitem=soup.find('div',{'class':'showbox'})
title=soup.find('div',{'class':'msg'}).find('div',{'class':'m_left'}).get_text()
imglist=baseitem.find_all('img')
for img in imglist:
imgurl=img.get('src')
self.DownImg(imgurl)
content=baseitem.get_text().encode('utf8')
position=content.find('热点推荐')
return title,content[0:position] def ParseItem(self,item):
url=item.get('href')
if url==None:
return
#print url+'\n'
html=obj.GetHtml2(url)
title,content=obj.ParseContent(html)
#print title+'\n'
return title
def print_result(request, result):
print str(request.requestID)+":"+result obj=htmlpaser() pool = threadpool.ThreadPool(10)
for i in range(1,40):
url="http://op.52pk.com/shtml/op_wz/list_2594_%d.shtml"%(i)
html=obj.GetHtml2(url)
items=obj.GetList(html)
print 'add job %d\r' % (i)
requests = threadpool.makeRequests(obj.ParseItem, items, print_result)
[pool.putRequest(req) for req in requests]
pool.wait()

Python 实现的下载op海贼王网的图片(网络爬虫)的更多相关文章

  1. 【Python开发】【神经网络与深度学习】网络爬虫之python实现

    一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一 ...

  2. 【Python开发】【神经网络与深度学习】网络爬虫之图片自动下载器

    python爬虫实战--图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识(没看的赶紧去看)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap show ...

  3. 从零开始学Python网络爬虫PDF高清完整版免费下载|百度网盘

    百度网盘:从零开始学Python网络爬虫PDF高清完整版免费下载 提取码:wy36 目录 前言第1章 Python零基础语法入门 11.1 Python与PyCharm安装 11.1.1 Python ...

  4. 《Python Web开发实战》|百度网盘免费下载|Python Web开发

    <Python Web开发实战>|百度网盘免费下载|Python Web开发 提取码:rnz4 内容简介 这本书涵盖了Web开发的方方面面,可以分为如下部分: 1. 使用最新的Flask ...

  5. 《精通Python网络爬虫》|百度网盘免费下载|Python爬虫实战

    <精通Python网络爬虫>|百度网盘免费下载|Python爬虫实战 提取码:7wr5 内容简介 为什么写这本书 网络爬虫其实很早就出现了,最开始网络爬虫主要应用在各种搜索引擎中.在搜索引 ...

  6. 豆瓣 9.0 分的《Python学习知识手册》|百度网盘免费下载|

    豆瓣 9.0 分的<Python学习知识手册>|百度网盘免费下载| 提取码:nuak 这是之前入门学习Python时候的学习资料,非常全面,从Python基础.到web开发.数据分析.机器 ...

  7. Python爬虫实例(六)多进程下载金庸网小说

    目标任务:使用多进程下载金庸网各个版本(旧版.修订版.新修版)的小说 代码如下: # -*- coding: utf-8 -*- import requests from lxml import et ...

  8. 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...

  9. Js批量下载花瓣网及堆糖网专辑图片

    插件作者:SaintIC 文章地址:https://blog.saintic.com/blog/256.html 一.安装 1. 安装Tampermonkey扩展,不同浏览器的支持,参见官网:http ...

随机推荐

  1. EFM32在使用IAR开发环境配置ICf文件以及指定程序存储地址空间

    EFM32在IAR开发环境下指定代码,数据的存储空间 为了便于后续的项目升级,管理,需要对代码,数据的存储空间加以设定,也在网上找下相关的资料,笔者水平有限, 如下内容不一定完全正确,如有错误之后,还 ...

  2. The parent project must have a packaging type of POM

    在Eclipse中使用Maven添加模块时报错:The parent project must have a packaging type of POM 解决办法: 是将pom.xml 中的  < ...

  3. 使用Java创建RESTful Web Service(转)

    REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...

  4. windows下安装mysql5.6.13的主从复制

    如下操作均在vmware 虚拟机中winows xp 测试成功 中间走了很多弯路,网上的很多资料都是针对5.1以前的版本,在新版中根本无法使用,所以根据自己的实践整理了这篇文章 主服务:192.168 ...

  5. Delphi - XP扫雷外挂制作

    技术交流,DH讲解. 本来之前就在写这个文章,还写了War3挂的教程,后来因为一些事就没有弄了.现在过年在家又没有事就继续把这个写完吧.哈哈.不要以为写个挂很容易,要想写个挂肯定要了解游戏呀.我们现在 ...

  6. MSSQL - 通用存储过程

    通用插入存储过程: -- ============================================= -- Author: HF_Ultrastrong -- Create date: ...

  7. WordPress数据备份

    服务器钱用光了要关了或者是服务器想要搬家,需要备份各种数据. 今天简单的备份了一下在服务器上面wordpress各种文件和资源. wordpress的数据主要分两个部分,一个是文字部分的:一个是附件部 ...

  8. UVA 565 565 Pizza Anyone? (深搜 +位运算)

      Pizza Anyone?  You are responsible for ordering a large pizza for you and your friends. Each of th ...

  9. Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)

    下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象). 功能如下: 1,点击“保存”将联系人存入userList.plist文件中 2,点击 ...

  10. javascript中外部js文件取得自身完整路径得办法

    原文:javascript中外部js文件取得自身完整路径得办法 有时候我们需要引入一个外部js文件,这个js文件又需要用到自己的路径或者是所在的目录,别问怎么又这么变态的需求,开发做久了各种奇葩需求也 ...