第一步:注册一个你的账号

第二步:登录账号

第三步:发现我们要找的数据在https://db.yaozh.com/zhongyaocai/1.html这个网页里,一共10225条数据其实就只用修改这个网页的最后那个数字就行。

第四步:按F12再按F5检查元素,找到一个带请求头部的元素,复制你的cookie

第五步:抓取一个网页的中药材标题及内容

from bs4 import BeautifulSoup
import urllib
import requests
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11'}
cookie={'cookie':'你的cookie'}
value=[]
th=[]
afterURL = "https://db.yaozh.com/zhongyaocai/600.html"        # 想要爬取的登录后的页面
html = requests.get(afterURL,cookies=cookie, headers = header).text # 获得登陆后的响应信息,使用之前的cookie
bsobj=BeautifulSoup(html)
f=bsobj.findAll("span",{"class":"toFindImg"})   #抓取的属性内容
items=bsobj.findAll("th",{"class":"detail-table-th"}) #抓取的标题
for i in f:  #获得一个内容listnew=i.get_text()k=new.replace(' ', '') #去空格k2=k.replace('\n', '') #去换行符value.append(k2)
for item in items: #获得一个标签listnew=item.get_text()k=new.replace(' ', '')k2=k.replace('\n', '')th.append(k2)
dic={}  #将标题和内容以字典键值对形式对应
for i in range(len(th)):dic[th[i]] = value[i]
#由于每个页面的中药的特征值都不同,所以这里我用的方法不是很好。用null值替代没有出现的特征值,防止之后数据错位。好像可以用mongo来处理。
result=[]
if ('药材名称' in dic):result.append(dic['药材名称'])
else :result.append('null')
if ('汉语拼音' in dic):result.append(dic['汉语拼音'])
else :result.append('null')
if ('英文名' in  dic):result.append(dic['英文名'])
else :result.append('null')
if ('拉丁文名' in  dic):result.append(dic['拉丁文名'])
else :result.append('null')
if ('原拉丁植物动物矿物名' in dic):result.append(dic['原拉丁植物动物矿物名'])
else :result.append('null')
if ('药材别名' in dic):result.append(dic['药材别名'])
else :result.append('null')
if ('药材类别' in dic):result.append(dic['药材类别'])
else :result.append('null')
if ('药材来源' in dic):result.append(dic['药材来源'])
else :result.append('null')
if ('分布' in dic):result.append(dic['分布'])
else :result.append('null')
if ('鉴别' in dic):result.append(dic['鉴别'])
else :result.append('null')
if ('化学成分' in dic):result.append(dic['化学成分'])
else :result.append('null')
if ('药理作用' in dic):result.append(dic['药理作用'])
else :result.append('null')
if ('性味归经' in dic):result.append(dic['性味归经'])
else :result.append('null')
if ('功能主治' in dic):result.append(dic['功能主治'])
else :result.append('null')
if ('注意事项' in dic):result.append(dic['注意事项'])
else :result.append('null')
if ('附方' in dic):result.append(dic['附方'])
else :result.append('null')
if ('名家论述' in dic):result.append(dic['名家论述'])
else :result.append('null')
if ('现代临床研究' in dic):result.append(dic['现代临床研究'])
else :result.append('null')
if ('摘录' in  dic):result.append(dic['摘录'])
else :result.append('null')
print(result)

cookie模拟登陆爬取药智网中药材数据库数据相关推荐

  1. Python爬取药智网的中药材图谱网页

    这次学习了python中的BeautifulSoup模块,并用bs爬取的药智网.网址:http://db.yaozh.com/tupu?p= 首先要安装bs,要注意版本问题,我一开始用的beautif ...

  2. 使用Beautifulsoup爬取药智网数据

    使用Beautifulsoup模块爬取药智网数据 Tips:1.爬取多页时,先用一页的做测试,要不然ip容易被封 2.自己常用的处理数据的方法: reg=re.compile('正则表达式') dat ...

  3. 爬取药智网的中药材基本信息库

    最近正在做爬虫系列的东西,也是刚刚开始写,写的也不怎么样..... 下面是我写的爬取中药材基本信息库的代码,还请大家多多指导. 首先先看网页,刚开始的时候,</p>中的信息无法读出来,导致 ...

  4. Scrapy框架的学习(10.Scrapy中的模拟登陆(使用cookie模拟登陆))

    1. 为什么需要模拟登陆? 获取cookie,能够爬取登陆后的页面的数据 2.使用cookie模拟登陆的场景 (1) cookie过期时间很长,常见于一些不规范的网站 (2) 能在cookie过期之前 ...

  5. 利用python爬虫(part15)--cookie模拟登陆

    学习笔记 文章目录 cookie模拟登陆 获取cookie 爬取我的简介 cookie模拟登陆 有的时候,我们想要抓取一个网站,但是需要先登录才能访问它,如果不输入用户名和密码,我们就会一直停留在登录 ...

  6. Python 爬虫实战,模拟登陆爬取数据

    Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...

  7. python爬取新浪新闻首页_Python爬虫学习:微信、知乎、新浪等主流网站的模拟登陆爬取方法...

    微信.知乎.新浪等主流网站的模拟登陆爬取方法 摘要:微信.知乎.新浪等主流网站的模拟登陆爬取方法. 网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样.从是否需要登陆这方面来说,一些 ...

  8. PythonScript_003_通过Cookie模拟登陆人人网

    #!/usr/bin/env python # -*- coding:utf-8 -*-import urllib.request import http.cookiejar # 相当于Python2 ...

  9. xpath爬取智联招聘--大数据开发职位并保存为csv

    先上项目效果图: 本次爬取的URL为智联招聘的网址:https://www.zhaopin.com/ 首先先登录上去,为了保持我们代码的时效性,让每个人都能直接运行代码出结果,我们要获取到我们登录上去 ...

最新文章

  1. percona server修改数据目录datadir为/data/mysql:
  2. 非程序员如何使用 Git——版本控制你的生活
  3. TKStudio-LPC1220_GPIO_LED工程后记
  4. LINQ字符拼接的AND和OR操作
  5. c++迭代器模式iterator
  6. 激光slam_机器人主流定位技术,激光SLAM与视觉SLAM谁更胜一筹
  7. JZOJ4742 单峰
  8. 什么是容器服务_【小牛云计算课堂】什么是容器镜像服务
  9. 清理autodesk产品注册表_卸载 AutoCAD 清理注册表
  10. C语言嵌入式系统编程修炼之软件架构篇
  11. Axure 8.1.0.3382 激活码(转)
  12. 利用橡皮擦进行PS抠图的方法教程
  13. 多线程支持断点续传的文件传输--(摘自大富翁)
  14. STM32F103_study67_The punctual atoms(STM32 OLED display experiment)
  15. linux中权限sudo,Linux中sudo权限(下)
  16. 【高德地图进阶】--- 3d城市版块之wall
  17. 思考如何概括“技术美术”(Technical Artist)的职责
  18. 【第二章】谭浩强C语言课后习题答案
  19. 计算机管理服务没有nvidia,win7没有nvidia控制面板怎么解决 电脑没有nvidia控制面板解决方法...
  20. sublime text3 多窗口打开设置

热门文章

  1. Linux-Windows远程连接(局域网内连接和外网与局域网连接)
  2. STM32F103完成对SD卡的数据读取(fat文件模式)
  3. 应该怎样庆祝自己的生日更能体现生命的意义?
  4. waf怎么读_1.如何绕过WAF(Web应用防火墙)
  5. vue中使用wangeditor富文本编辑器(含图片上传和回显)
  6. RedHat7.0 实验指南之firewall的应用
  7. 5-Redis 高可用篇:你管这叫 Sentinel 哨兵集群原理(码哥)
  8. 2022年《国家职业教育智慧平台应用推广培训》课程-答案--(中职)已验证
  9. 程序员惨遭996,注册Github域名炮轰996工作模式
  10. 别人问你工资多少时,怎么回答!