python3爬取中国药学科学数据
今天我表弟说帮忙爬一下中国药学科学数据,导出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爬取中国药学科学数据的更多相关文章
- 初识python 之 爬虫:爬取中国天气网数据
用到模块: 获取网页并解析:import requests,html5lib from bs4 import BeautifulSoup 使用pyecharts的Bar可视化工具"绘制图表& ...
- python爬取中国天气网站数据并对其进行数据可视化
网址:http://www.weather.com.cn/textFC/hb.shtml 解析:BeautifulSoup4 爬取所有城市的最低天气 对爬取的数据进行可视化处理 按温度对城市进行排 ...
- python3爬取拉钩招聘数据
使用python爬去拉钩数据 第一步:下载所需模块 requests 进入cmd命令 :pip install requests 回车 联网自动下载 xlwt 进入cmd命令 :pip install ...
- python3抓取中国天气网不同城市7天、15天实时数据
思路:1.根据city.txt文档来获取不同城市code2.获取中国天气网7d和15d不同城市url3.利用requests库请求url获取html内容4.利用beautifulsoup获取7d和15 ...
- Python爬取中国天气网
Python爬取中国天气网 基于requests库制作的爬虫. 使用方法:打开终端输入 “python3 weather.py 北京(或你所在的城市)" 程序正常运行需要在同文件夹下加入一个 ...
- Python3 爬取微信好友基本信息,并进行数据清洗
Python3 爬取微信好友基本信息,并进行数据清洗 1,登录获取好友基础信息: 好友的获取方法为get_friends,将会返回完整的好友列表. 其中每个好友为一个字典 列表的第一项为本人的账号信息 ...
- Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码
题记: 11月14日早晨8点,人人网发布公告,宣布人人公司将人人网社交平台业务相关资产以2000万美元的现金加4000万美元的股票对价出售予北京多牛传媒,自此,人人公司将专注于境内的二手车业务和在美国 ...
- python3爬取微博评论并存为xlsx
python3爬取微博评论并存为xlsx**由于微博电脑端的网页版页面比较复杂,我们可以访问手机端的微博网站,网址为:https://m.weibo.cn/一.访问微博网站,找到热门推荐链接我们打开微 ...
- python3爬取全民K歌
Python3爬取全民k歌 环境 python3.5 + requests 1.通过歌曲主页链接爬取 首先打开歌曲主页,打开开发者工具(F12). 选择Network,点击播放,会发现有一个请求返回的 ...
随机推荐
- linux开放端口关闭防火墙
linux开放端口关闭防火墙 systemctl status firewalld查看当前防火墙状态. 开启防火墙 systemctl start firewalld开放指定端口 ...
- 《剑指offer》面试题55 - II. 平衡二叉树
问题描述 输入一棵二叉树的根节点,判断该树是不是平衡二叉树.如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树. 示例 1: 给定二叉树 [3,9,20,null,null, ...
- 《剑指offer》面试题57 - II. 和为s的连续正数序列
问题描述 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 示例 1: 输入:target ...
- python闭包函数&装饰器
一.函数引用 函数可以被引用 函数可以被赋值给一个变量 def hogwarts(): print("hogwarts") # hogwarts() # 函数调用 print(ho ...
- 2022GDUT寒训专题一I题
题目 题面 给一个长度为 N的数组,一个长为 K的滑动窗体从最左端移至最右端,你只能看到窗口中的 K 个数,每次窗体向右移动一位,如下图: 窗口位置 最小值 最大值 [1 3 -1] -3 5 3 6 ...
- Kubernetes:Pod基础知识总结
Blog:博客园 个人 官方文档详尽介绍了Pod的概念. 概念 Pods are the smallest deployable units of computing that you can cre ...
- docker内存限制
默认docker容器可以使用宿主机所有的内存和CPU,我们可以通过 docker run 来限制内存和CPU的使用. 有的系统内核不支持 Linux capabilities. 可以通过 docker ...
- Java 中对象锁和类锁的区别? 关键字 Synchronized的用法?
一 对象锁和类锁的关系 /* * 对象锁和[类锁] 全局锁的关系? 对象锁是用于对象实例方法,或者一个对象实例上的 this 类锁是用于类的静态方法或者一个类的class对象上的. Ag.class ...
- C#Xml的三种创建方式(或者是两种?)和增删改查
一.Xml的创建方式 Xmlwriter(流式读取,Stream) 写过了:https://www.cnblogs.com/dengzhekaihua/p/15438493.html 这种方法虽然快, ...
- atomic 原子自增工程用法案例
案例 1 : 简单用法 atomic_int id; atomic_fetch_add(&id, 1) atomic_uint id; atomic_fetch_add(&id, 1) ...