china-pub
#!/usr/bin/env python
#coding:utf-8
import urllib2,re,sys,os,types
#from bs4 import BeautifulSoup
reload(sys);
sys.setdefaultencoding('gbk');
province="上海"
city="上海"
fileHeader='\xEF\xBB\xBF'
colums='省直辖市^城市^行政区^商圈^名称^地址^联系人^联系电话^URL^公司介绍^'
def getCompany(method):
for page in range(1,5+1):
url1="http://product.china-pub.com/cache/rank3/newbook/%s_%s.html"%(method,page)
print "\n##################:",url1
httpCrawler(url1,page,method)
def httpCrawler(url,page,method):
content = httpRequest(url)
#<tr logr='j_2_27359935228167_20019655228034_3'>
List=re.findall(r'<td height="17" style="overflow: hidden;" colspan="5">(.*?)<a href="(.*?)" target="_blank">(.*?)</a>',content,re.S)
no=len(List)
print no
method1=method.replace("\/","")
for i in range(0,no):#0 ~ no-1
url=List[i][1]
name=List[i][2]
name1=name.replace("/","").replace(u"+微信营销与运营:策略、方法、技巧与实践+微信营销解密:移动互联网时代的营销革命","")
print "\ndownload one page:",List[i][1],"\n",List[i][2]
if not os.path.exists('./%s'%method1):
os.mkdir(r'./%s'%method1)
content = httpRequest(url)
# if (page-1)*20+i+1 != 82:
open(u'%s/%s.%s'%(method1,(page-1)*20+i+1,name1+'.html'),'w+').write(content)
print "ok"
def httpRequest(url):
#try:
html = None
req_header = {
'User-Agent':'Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0',
'Accept':'text/html;q=0.9,*/*;q=0.8',
#'Accept-Language':'en-US,en;q=0.5',
#'Accept-Encoding':'gzip',
#'Host':'j3.s2.dpfile.com',
#'Connection':'keep-alive'
#'Referer':'http://www.baidu.com'
}
req_timeout = 15
req = urllib2.Request(url,None,req_header)
resp = urllib2.urlopen(req,None,req_timeout)
html = resp.read()#.decode('gbk').encode('gbk')
print "resp:",resp
#print html
#finally:
# if resp:
# resp.close()
return html
def writeHeader(fileheader,colums):
if not os.path.exists('./58'):
os.mkdir(r'./58')
f = open('./58/daikuan.csv', 'w')
f.write(fileheader)
f.write(colums)
#f.write('\r\n')
f.close()
array=(
'day\/rank_day_7_51',
'day\/rank_day_30_51',
'day\/rank_day_90_51',
'month\/rank_month_7_51',
'month\/rank_month_6_51',
'month\/rank_month_5_51',
'month\/rank_month_4_51',
'month\/rank_month_3_51',
'month\/rank_month_2_51',
'month\/rank_month_1_51',
'day\/rank_day_7_02',
'day\/rank_day_30_02',
'day\/rank_day_90_02',
'month\/rank_month_7_02',
'month\/rank_month_6_02',
'month\/rank_month_5_02',
'month\/rank_month_4_02',
'month\/rank_month_3_02',
'month\/rank_month_2_02',
'month\/rank_month_1_02',
'day\/rank_day_7_31',
'day\/rank_day_30_31',
'day\/rank_day_90_31',
'month\/rank_month_7_31',
'month\/rank_month_6_31',
'month\/rank_month_5_31',
'month\/rank_month_4_31',
'month\/rank_month_3_31',
'month\/rank_month_2_31',
'month\/rank_month_1_31',
'day\/rank_day_7_57',
'day\/rank_day_30_57',
'day\/rank_day_90_57',
'month\/rank_month_7_57',
'month\/rank_month_6_57',
'month\/rank_month_5_57',
'month\/rank_month_4_57',
'month\/rank_month_3_57',
'month\/rank_month_2_57',
'month\/rank_month_1_57',
'day\/rank_day_7_47',
'day\/rank_day_30_47',
'day\/rank_day_90_47',
'month\/rank_month_7_47',
'month\/rank_month_6_47',
'month\/rank_month_5_47',
'month\/rank_month_4_47',
'month\/rank_month_3_47',
'month\/rank_month_2_47',
'month\/rank_month_1_47',
'day\/rank_day_7_46',
'day\/rank_day_30_46',
'day\/rank_day_90_46',
'month\/rank_month_7_46',
'month\/rank_month_6_46',
'month\/rank_month_5_46',
'month\/rank_month_4_46',
'month\/rank_month_3_46',
'month\/rank_month_2_46',
'month\/rank_month_1_46',
'day\/rank_day_7_60',
'day\/rank_day_30_60',
'day\/rank_day_90_60',
'month\/rank_month_7_60',
'month\/rank_month_6_60',
'month\/rank_month_5_60',
'month\/rank_month_4_60',
'month\/rank_month_3_60',
'month\/rank_month_2_60',
'month\/rank_month_1_60',
'day\/rank_day_7_52',
'day\/rank_day_30_52',
'day\/rank_day_90_52',
'month\/rank_month_7_52',
'month\/rank_month_6_52',
'month\/rank_month_5_52',
'month\/rank_month_4_52',
'month\/rank_month_3_52',
'month\/rank_month_2_52',
'month\/rank_month_1_52',
'day\/rank_day_7_59',
'day\/rank_day_30_59',
'day\/rank_day_90_59',
'month\/rank_month_7_59',
'month\/rank_month_6_59',
'month\/rank_month_5_59',
'month\/rank_month_4_59',
'month\/rank_month_3_59',
'month\/rank_month_2_59',
'month\/rank_month_1_59'
'day\/rank_day_7_28',
'day\/rank_day_30_28',
'day\/rank_day_90_28',
'month\/rank_month_7_28',
'month\/rank_month_6_28',
'month\/rank_month_5_28',
'month\/rank_month_4_28',
'month\/rank_month_3_28',
'month\/rank_month_2_28',
'month\/rank_month_1_28',
)
if __name__ == '__main__':
#writeHeader(fileHeader,colums)
print len(array)
for i in range(0,len(array)):
getCompany(array[i])
china-pub的更多相关文章
- Python攻关之Django(一)
课程简介: Django流程介绍 Django url Django view Django models Django template Django form Django admin (后台数据 ...
- django 模型
一.project 与app之间的关系 1个project中可包含多个app eg:包含两个app的project的结构
- 转(NLP必读)
如果你刚接触自然语言处理并对她感兴趣,最好读几本这方面的书籍,除了能让你知道自然语言处理各个领域是干什么的外,还能培养一下NLP的感觉.以下四本书是我读研期间阅读和接触过的,如果您还有好书推荐,欢迎补 ...
- django之数据库orm
一.数据库的配置 1 django默认支持sqlite,mysql, oracle,postgresql数据库. <1>sqlite django默认使用sqlite的数据库,默认自带sq ...
- Django详细介绍
课程简介: Django流程介绍 Django url Django view Django models Django template Django form Django admin (后台数据 ...
- c++学习书籍推荐《C标准库(英文版)》下载
<C标准库(英文版)>是由世界级C语言专家编写的C标准库经典著作,影响了几代程序员. <C标准库(英文版)>集中讨论了C标准库,全面介绍了ANSI/ISO C语言标准的所有库函 ...
- C++学习书籍推荐《The C++ Standard Library 2nd》下载
百度云及其他网盘下载地址:点我 编辑推荐 经典C++教程十年新版再现,众多C++高手和读者好评如潮 畅销全球.经久不衰的C++ STL鸿篇巨著 C++程序员案头必 备的STL参考手册 全面涵盖C++1 ...
- 小程序-demo:天气预报
ylbtech-小程序-demo:天气预报 1.返回顶部 1.app.js //app.js App({ //系统事件 onLaunch: function () {//小程序初始化事件 var th ...
- China Azure中部署Kubernetes(K8S)集群
目前China Azure还不支持容器服务(ACS),使用名称"az acs create --orchestrator-type Kubernetes -g zymtest -n kube ...
- Redis的Pub/Sub客户端实现
前言 在学习T-io框架,从写一个Redis客户端开始一文中,已经简单介绍了Redis客户端的实现思路,并且基础架构已经搭建完成,只不过支持的命令不全,不过后期在加命令就会很简单了.本篇就要实现P ...
随机推荐
- Android Fragment 嵌套使用报错
在新的SDK每次创建activity时,会自己主动生成 <pre name="code" class="java">public static c ...
- Java 程序中的多线程
概述 synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C. D等)正在用这个方法,有的话要等正在使用synch ...
- 前缀 树 背单词(Remember the Word,LA 3942)
已哭瞎. 搞了2个多小时的错误居然是在 没有初始化............教训:每个例子一定要考虑到初始化问题.! 每个节点存了一个数组 该数组记录的有26个大小 0-25分别表示记录表示'a' ...
- iOS 10 因苹果健康导致闪退 crash
如果在app中调用了苹果健康,iOS10中会出现闪退.控制台报出的原因是: Terminating app due to uncaught exception 'NSInvalidArgumentEx ...
- Node.js、Ionic、Cordova、AngualrJS安装
1.安装node.js: 从node.js官网下载node.js安装包,node.js下载地址:https://nodejs.org/en/download/,选择对应系统的安装下载后进行安装.(注: ...
- Dos关闭进程命令
netstat -ao 查找占用端口的进程 taskkikk /pid 端口pid /f
- POJ 3974 Palindrome(最长回文子串)
题目链接:http://poj.org/problem?id=3974 题意:求一给定字符串最长回文子串的长度 思路:直接套模板manacher算法 code: #include <cstdio ...
- .NET中的IO操作之文件流(一)
读操作 //1.创建文件流 FileStream fsRead =new FileStream("1.txt",FileMode.Open); //2.创建缓冲区,正常情况下,是不 ...
- Hbuilder 常用快捷键汇总
朋友推荐用Hbuilder编辑器,看了下Hbuilder官网和那视频,感觉牛逼哄哄的, 自己也就体验了一下,打开Hbuilder的快捷键列表,每个快捷键都体验了一下,以下展示出来的,每一个都是精华,每 ...
- JAVA GUI学习 - JTree树结构组件学习 ***
public class JTreeKnow extends JFrame { public JTreeKnow() { this.setBounds(300, 100, 400, 500); thi ...