1 / 39
文档名称:

python爬虫实战.docx

格式:docx   大小:2,447KB   页数:39页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

python爬虫实战.docx

上传人:changjinlai 2019/3/1 文件大小:2.39 MB

下载得到文件列表

python爬虫实战.docx

文档介绍

文档介绍:python爬虫实战,多线程爬取京东jdhtml页面:无需登录的网站的爬虫实战2014-12-0220:04:31标签:网站爬虫pythonimport版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。【前言】123456# 本脚本用来爬取jd的页面:http://list./?cat=737,794,870到# ......http://list./?cat=737,794,870&page=11&JL=6_0_0的所有html的内容和图片。# 本脚本仅用于技术交流,请勿用于其他用途# by River# qq : 179621252# Date : 2014-12-02 19:00:00【需求说明】   以京东为示例,爬取页面的,获取页面中得数据:;获取页面中得图片,保存下来。1、list的url如下2、商品详情页的url如下:【技术说明】12345678使用了python的以下库import os#检查文件是否存在等from HTMLParser import HTMLParser#用于解析html的库,有坑:,可能悲剧import httplib,re#发起http请求import sys,json,datetime,bisect#使用了二分快速查找from urlparse import urlparse#解析url,分析出url的各部分功能from threading import Thread#使用多线程import socket #设置httplib超时时间【代码逻辑说明】1、run(获取最终要的结果)2、parseListpageurl:返回list的总共的页面数量3、judgelist:判断该list是否已经爬取完毕了,第一个list中的所有url、最后list的所有url都爬取完毕了,那么久说明list的所有page爬取完毕了(实际上是一种弱校验)4、getfinalurl_content:如果list没爬取完毕,每个list爬取,解析list中得每个html(判断html是否爬取过),获得内容和img【坑说明】1、需要设置超时时间,和重试,否则爬取一个url卡住的时候,整个线程都悲剧了。2、有编码的坑,如果页面是gb2312的编码,需要转换为utf-8的编码:('gbk').encode('utf-8')3、,如果存在一些特殊字符,可能需要替换,否则解析出来会莫名不对4、图片保存,根据url获取前面两个数字,保存。以免一个目录下保存了过多的图片。【执行结果】1、console输出2、、(保存已经爬取过的url)4、图片(下载的图片)【代码详情】123456789101112131415# -*- coding: utf-8 -*- __author__ = 'River' # 本脚本用来爬取jd的页面:http://list./?cat=737,794,870到# ......http://list./?cat=737,794,870&page=11&JL=6_0_0的所有html的内容和图片。 # 本脚本仅用于技术交流,请勿用于其他用途# by River# qq : 179621252# Date : 2014-12-02 19:00:00  import os#创建文件from HTMLParser import HTMLParser#用于解析html的库,有坑:,可能悲剧import httplib,re#发起http请求import sys,json,datetime,bisect#使用了二分快速查找from urlparse import urlparse#解析url,分析出url的各部分功能from threading import Thread#使用多线程import socket #设置httplib超时时间#定义一个ListPageParser,用于解析ListPage,如http://list./?cat=737,794,870  #htmlparser的使用简介#定义intt方法:需要使用到得属性#定义handle_starttag,处理你想分析的tag的具体操作#定义handle_data,遇到你定义的情况,获取相应标签的data#定义你获取最终返回的各种数据class ListPageParser(