今天我表弟说帮忙爬一下中国药学科学数据,导出json格式给他。一共18万条数据。

看了一下网站http://pharm.ncmi.cn/dataContent/admin/index.jsp?submenu=183

竟然get请求。不爬你爬谁。。。

#/usr/bin/env python
#Guoyabin
#-*- coding:utf-8 -*-
import re,requests,threading,time
def inserttxt(file,text):
f=open(file,'a+')
f.write(text)
f.close() def down(begin,end):
url='http://pharm.ncmi.cn/dataContent/dataSearch.do'
for i in range(begin,end):
file=str(end)+'.txt'
params={'method':'viewpage','id':i,'did':26}
try:
html=requests.get(url,params=params,timeout=60)
r=html.text.replace("\r","")
html.close()
r=r.replace("\n","")
r=r.replace("\t","")
r=r.replace(">","")
req='width="89%">(.*?) </td>'
yaovalue=re.findall(req,r)
yaokey=['{\nname:"','",\nenglish:"','",\nnumber:"','",\nshanpinmingchen:"','",\ndanwei:"','",\ndate:"','",\nclass:"','",\nguige:"','",\njixing:"','",\nleibie:"','",\npizhun:"']
yao=zip(yaokey,yaovalue)
for i in yao:
for x in i:
inserttxt(file,x)
inserttxt(file,'"\n},\n')
#休息3秒在爬,原来没有休息。导致大量TCP连接。且对方直接封我ip。
#18万条数据/10线程*3秒等待/60秒/60分=15个小时拿完对方数据。不如改一下程序,多台独立IP电脑运行了。
time.sleep(3)
except:
print('url访问失败')
continue if __name__=='__main__':
t1=threading.Thread(target=down,args=(2228,20000,))
t1.start()
t2=threading.Thread(target=down,args=(20000,40000,))
t2.start()
t3=threading.Thread(target=down,args=(40000,60000,))
t3.start()
t4=threading.Thread(target=down,args=(60000,80000,))
t4.start()
t5=threading.Thread(target=down,args=(80000,100000,))
t5.start()
t6=threading.Thread(target=down,args=(100000,120000,))
t6.start()
t7=threading.Thread(target=down,args=(120000,140000,))
t7.start()
t8=threading.Thread(target=down,args=(140000,160000,))
t8.start()
t9=threading.Thread(target=down,args=(16000,180000,))
t9.start()
t10=threading.Thread(target=down,args=(18000,183662,))
t10.start()
t10.join()
input('已经下载完,按回车退出')

  开始运行了几次没问题,已经爬下一半了,过了一会直接被封了。可能爬的太快了。容我做个悲伤的表情。

无耻的求一下赞助

python3爬取中国药学科学数据的更多相关文章

  1. 初识python 之 爬虫:爬取中国天气网数据

    用到模块: 获取网页并解析:import requests,html5lib from bs4 import BeautifulSoup 使用pyecharts的Bar可视化工具"绘制图表& ...

  2. python爬取中国天气网站数据并对其进行数据可视化

    网址:http://www.weather.com.cn/textFC/hb.shtml 解析:BeautifulSoup4 爬取所有城市的最低天气   对爬取的数据进行可视化处理 按温度对城市进行排 ...

  3. python3爬取拉钩招聘数据

    使用python爬去拉钩数据 第一步:下载所需模块 requests 进入cmd命令 :pip install requests 回车 联网自动下载 xlwt 进入cmd命令 :pip install ...

  4. python3抓取中国天气网不同城市7天、15天实时数据

    思路:1.根据city.txt文档来获取不同城市code2.获取中国天气网7d和15d不同城市url3.利用requests库请求url获取html内容4.利用beautifulsoup获取7d和15 ...

  5. Python爬取中国天气网

    Python爬取中国天气网 基于requests库制作的爬虫. 使用方法:打开终端输入 “python3 weather.py 北京(或你所在的城市)" 程序正常运行需要在同文件夹下加入一个 ...

  6. Python3 爬取微信好友基本信息,并进行数据清洗

    Python3 爬取微信好友基本信息,并进行数据清洗 1,登录获取好友基础信息: 好友的获取方法为get_friends,将会返回完整的好友列表. 其中每个好友为一个字典 列表的第一项为本人的账号信息 ...

  7. Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码

    题记: 11月14日早晨8点,人人网发布公告,宣布人人公司将人人网社交平台业务相关资产以2000万美元的现金加4000万美元的股票对价出售予北京多牛传媒,自此,人人公司将专注于境内的二手车业务和在美国 ...

  8. python3爬取微博评论并存为xlsx

    python3爬取微博评论并存为xlsx**由于微博电脑端的网页版页面比较复杂,我们可以访问手机端的微博网站,网址为:https://m.weibo.cn/一.访问微博网站,找到热门推荐链接我们打开微 ...

  9. python3爬取全民K歌

    Python3爬取全民k歌 环境 python3.5 + requests 1.通过歌曲主页链接爬取 首先打开歌曲主页,打开开发者工具(F12). 选择Network,点击播放,会发现有一个请求返回的 ...

随机推荐

  1. 理解Cookie和Session机制,及其安全问题

    大家常说"Cookie保存在客户端而Session保存在服务端",很多人看了有疑惑,明明Session就在Cookie中啊,为什么这么说?二者到底有啥区别? 一.Cookie 首先 ...

  2. MINItest软件架构总结

    MINItest软件架构总结 ----helloWen MINItest软件架构总结1. Problem Description2. Analysis3. Solution3.1. 通过读取设备信息来 ...

  3. Sentry 开发者贡献指南 - 配置 PyCharm

    概述 如果您使用 PyCharm 进行开发,则需要配置一些内容才能运行和调试. 本文档描述了一些对 sentry 开发有用的配置 配置 Python 解释器:(确保它是 venv 解释器)例如 ~/v ...

  4. 【vps】如何在vps上安装mirai机器人?

    [vps]如何在vps上安装mirai机器人? 前言 由于某位师傅在群里设置了一个bot,吸引了我,所以我之前找他问了点bot的相关知识,这几天正好服务器搬迁,所以就在新服务器上再装一遍bot 1.安 ...

  5. yieId详解,以及和return的区别

    def foo(): print("starting...") while True: res = yield 4 print("res:",res) g = ...

  6. unity3d微软语音识别httppost失败。安全验证问题

    using System; using System.Collections; using System.Collections.Generic; using System.IO; using Sys ...

  7. 微服务架构 | 2.2 Alibaba Nacos 的统一配置管理

    目录 前言 1. Nacos 配置中心基础知识 1.1 Nacos 在配置中心中的功能 1.2 Nacos 配置管理 Data ID 的构成 1.3 Nacos 配置的回滚机制 1.4 Nacos 配 ...

  8. 多线程-守护线程-setDaemon

    1 package multithread4; 2 /* 3 * 停止线程: 4 * 1,stop方法. 5 * 6 * 2,run方法结束. 7 * 8 * 怎么控制线程的任务结束呢? 9 * 任务 ...

  9. http头文件

    http 文件头详解 HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写, 它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616.HTTP协议采 ...

  10. SpringBoot 简单介绍

    一.springboot是啥? 1.什么是springboot? 1.1springboot是spring生态圈的一个轻量级框架,换句话说springboot就是spring,是spring的一个衍生 ...