selenium_采集药品数据

news/2024/7/19 12:27:53 标签: 爬虫, python, 5g

Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门

https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6EmUbbW&id=564564604865

数据源

python">http://118.114.237.85:8081/searchbio.aspx

 

采集内容字段有的对不整齐,

python">def Get_one_table()函数需要修改

 

 

python"># -*- coding: utf-8 -*-
"""
Spyder Editor
采集思路:采一页,保存一页
This is a temporary script file.
"""
import requests,bs4,csv,time,selenium
from selenium import webdriver
list_allContent=[]

site="http://piqianfa.scsyjs.org/"
site1="http://118.114.237.85:8081/searchbio.aspx"
charset="gb2312"
browser=webdriver.Firefox()
browser.get(site1)
pages=196


#这种方式采集下来很粗糙,容易错位
def Get_one_table():
    elems=browser.find_elements_by_tag_name("tr")
    content=elems[0].text
    list_content=content.split("\n")
    #列表内个数
    num=len(list_content)
    list_content2=list_content[3:num]
    list_allContent.append(list_content2)
    
    return list_content2
'''
list_content2[2]
Out[13]: '批签蜀检201600220 人血白蛋白 20% 25ml 5g/瓶 201601A010 26931瓶 2021年1月22日 
成都蓉生药业有限责任公司 该批制品符合规定,判定合格 2016-05-04'
'''    
    
    
    
def Write_table_to_csv(fileName,list_tableContent):
    #对列表格式修改,字符串写入的格式不对
    list_tableContent1=[i.split(" ") for i in list_tableContent]
    file=open(fileName,'w',newline='')
    writer1=csv.writer(file)
    writer1.writerows(list_tableContent1)
    file.close()   
        
          

def Click_next_page():
    linkElem=browser.find_element_by_link_text("下一页")
    linkElem.click()


def Get_fileName():
    pass


for i in range(1,pages+1):
    list_tableContent=Get_one_table()
    Click_next_page()
    fileName=str(i)+".csv"
    Write_table_to_csv(fileName,list_tableContent)

  

 

 

python">def Get_one_table()函数需要修改
python"># -*- coding: utf-8 -*-
"""
Created on Fri May  6 10:24:18 2016

@author: Administrator
"""
import requests,bs4,csv,time,selenium
from selenium import webdriver
site1="http://118.114.237.85:8081/searchbio.aspx"
charset="gb2312"
browser=webdriver.Firefox()
browser.get(site1)

elems=browser.find_elements_by_class_name("tb")
elems1= elems[1:]
content=[i.text for i in elems1]


'''
elems=browser.find_elements_by_class_name("tr")
elems
Out[33]: []



elems=browser.find_elements_by_class_name("tb")
elems[1].text
Out[25]: '批签蜀检201600221'

elems[2].text
Out[26]: '静注人免疫球蛋白(pH4)'

elems[3].text
Out[27]: '2.5g(5%,50ml)/瓶'

elems[4].text
Out[28]: '201602005'

content
Out[60]: 
['批签蜀检201600221',
 '静注人免疫球蛋白(pH4)',
 '2.5g(5%,50ml)/瓶',
 '201602005',
 '16020瓶',
 '2019年1月',
 '华兰生物工程重庆有限公司',
 '该批制品符合规定,判定合格',
 '2016-05-04',
 '批签蜀检201600220',
 '人血白蛋白',
 '20% 25ml 5g/瓶',
  '批签蜀检201600202',
 '静注人免疫球蛋白(pH4)',
 '2.5g/瓶(5%,50ml)',
 '201511154B',
 '16664瓶',
 '2018年11月16日',
 '四川远大蜀阳药业股份有限公司',
 '该批制品符合规定,判定合格',
 '2016-04-29']

len(elems1)
Out[61]: 180

'''




'''
content=elems[0].text
list_content=content.split("\n")
#列表内个数
num=len(list_content)
list_content2=list_content[3:num]
'''

  

 


http://www.niftyadmin.cn/n/998082.html

相关文章

Android模拟IOS风格的自定义Dialog底部弹窗案例

先上效果图: 底部弹窗核心代码 MainActivity.java代码(包含窗口创建显示): Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public …

iOS开发--面试

今天一大清早去面试, 公司距离我家还挺近的, 花了一个小时走着去, 也顺路印下简历, 理理思路, 到了公司面试官什么的都不错, 还给我讲了很多知识, 收获也是满满的, 总结下今天都遇到了哪些问题, 调整调整状态. 1, 当需要自定义tabbar的item的数量可变时怎么做的 这里原本是想说…

【自动部署】服务器自动化操作 RunDeck

RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 RunDeck的作用: 在浏览器中执行服务…

让OData和NHibernate结合进行动态查询

OData是一个非常灵活的RESTful API,如果要做出强大的查询API,那么OData就强烈推荐了。http://www.odata.org/ OData的特点就是可以根据传入参数动态生成Entity Framework的查询,最终实现动态的SQL的查询。但是在项目有时我们并没有采用Entity…

由.java文件到.class文件转化成.dex文件再转化.smali文件的过程

Hello.java程序 public class Hello{public int foo(int a,int b){return (ab)*(a-b);}public static void main(String[] args){Hello hellonew Hello();System.out.println(hello.foo(5,3));} }使用javac命令将Hello.java文件转化为Hello.class文件 使用javap命令查看Hello.c…

软件工程需求分析

通过对书本第8、16章的学习,我了解到对于软件的需求分析具体分为1、获取和引导需求。2、分析和定义需求。3、验证需求。4、在软件产品的生命周期中管理需求这几个步骤。在软件需求分析中,我们要考虑到众多利益相关者,他们是用户、客户、市场分…

VCSA 6.0 安装

http://blog.163.com/yunlei_ma/blog/static/12720893520155223739689/ 转载于:https://blog.51cto.com/oldboyoldboy/1841615

Dalvik方法格式的表示形式

举个例子: 这个格式的转为java代码形式为: String method(int , int[ ][ ] , int , String , Object[ ])