selenium_采集药品数据

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

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

数据源

http://118.114.237.85:8081/searchbio.aspx

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

def Get_one_table()函数需要修改

# -*- 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("
")
    #列表内个数
    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)

  

def Get_one_table()函数需要修改
# -*- 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("
")
#列表内个数
num=len(list_content)
list_content2=list_content[3:num]
'''

  

原文地址:https://www.cnblogs.com/webRobot/p/5465032.html