资源简介
使用前一定要看使用说明,本程序批量下载excel中的文件链接并自动命名写入excel ,解决了遇到批量的链接时,用迅雷下载会遇到文件名无法统计的问题,本程序可以做到下载文件名与下载链接一一对应,写入excel。
代码片段和文件信息
#encoding:utf8
import re
import urlparse
import codecs
import xlrd
import time
import urllib
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class Spider(object):
name = “ausstats“
excel_sync = None
def __init__(self excel_name line_num):
excel= xlrd.open_workbook(excel_name)
self.sheet = excel.sheet_by_index(0)
self.data_rows_len = self.sheet.nrows
self.line_num = int(line_num)
self.excel_output = codecs.open(“ausstats.csv“ “w+“ ‘utf_8_sig‘)
self.excel_output.write(“pdf-nameurl\n“)
def close(self):
if self.excel_output:
self.excel_output.close()
def req(self):
for row_num in range(self.line_num self.data_rows_len+1):
name = self.sheet.cell_value(row_num 0)
url = self.sheet.cell_value(row_num 1)
print(“%s %s“ % (name url))
try:
file_name = self.create_pdf(url name)
self.excel_output.write(“%s%s\r\n“ % (file_name url))
except Exception as e:
pass
def create_pdf(self url filename):
headers = {
“accept“: “application/json text/javascript */*; q=0.01“
“accept-encoding“: “gzip deflate br“
“accept-language“: “zh-CNzh;q=0.9“
“user-agent“: “Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/62.0.3202.89 Safari/537.36“
}
try:
if url.split(“&“)[1].find(“.“) != -1:
filename = url.split(“&“)[1]
# resp = requests.get(url allow_redirects=False stream=True headers=headers)
# with open(filename ‘wb‘) as fd:
# for chunk in resp.iter_content(2048):
# fd.write(chunk)
# resp.close()
urllib.urlretrieve(url filename)
except Exception as e:
urllib.urlretrieve(url filename)
return filename
def main():
logger.info(“begin crawler“)
spider = None
try:
excel_name = raw_input(“please input excel name:“)
line_num = raw_input(“please input line num:“)
# excel_name = “data_for_dow.xlsx“
# line_num = “1“
spider = Spider(excel_name line_num)
spider.req()
logger.info(“end crawler“)
except Exception as e:
logger.error(“error:%s“ % e)
finally:
spider.close()
if __name__ == ‘__main__‘:
main()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 248 2018-05-25 08:56 程序使用说明.txt
文件 1197370 2017-11-15 22:31 pip-9.0.1.tar.gz
文件 20082688 2017-11-16 13:24 python-2.7.13.amd64.msi
文件 541397 2018-03-09 14:30 xlrd-1.1.0.tar.gz
文件 2622 2018-03-12 14:33 ausstats.py
- 上一篇:cisp考试资料:安全标准
- 下一篇:MinGW编译的opencv3.2
相关资源
- boa-constructor-0.6.1.bin.setup.exe
- 航空公司客户价值分析
- pygame做的成语猜字游戏
- Comprehensive_Experiment.zip
- 斗地主服务端源码(含客户端程序)
- Web安全之强化学习与GAN
- heroku-x64.exe
- geany-1.34.1_setup.exe
- vgg_generated_120.i等.tar.gz
- 《Tensorflow:实战Google深度学习框架》
- 22个爬虫项目源码 绝对实用
- 包含数据分析和数据挖掘的学习代码
- pygame-飞机大战.py
- 与孩子一起学编程_中文版
- Google App Engine 最新版 (google_appengin
- 基于flask框架连接数据库的图书管理系
- 大四生产实习报告
- Anaconda3-5.1.0-Windows-x86_64 最新版
- 肺结节分类算法代码
- 视频摄像头SSD模型目标检测.zip
- PyQt5-5.11.2-5.11.1-cp35.cp36.cp37.cp38-none-w
- dota2胜率预测模型源码
- BoW(Bag of Words)词袋模型.zip
- mongodb-compass-1.19.3-win32-x64.msi MongoDB可
- 谁说菜鸟不会数据分析
- scipy-0.19.1-cp27-cp27m-win32.whl(免积分)
- PyQt5快速开发与实战PDF 带目录
- 电商产品评论数据情感分析 stoplist
- numpy-1.13.3+mkl-cp36-cp36m-win_amd64
- 基于TensorFlow的手写中文识别
评论
共有 条评论