博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium_采集药品数据2_采集所有表格
阅读量:4958 次
发布时间:2019-06-12

本文共 1716 字,大约阅读时间需要 5 分钟。

 

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

 

 

# -*- coding: utf-8 -*-"""Created on Sat May  7 09:32:30 2016@author: daxiong"""import requests,bs4,csv,time,selenium,randomfrom selenium import webdriversite1="http://118.114.237.85:8081/searchbio.aspx"charset="gb2312"pages=196 browser=webdriver.Firefox()browser.get(site1) elems=browser.find_elements_by_class_name("tb")elems1= elems[1:]content=[i.text for i in elems1]#获取一页的表格内容def Get_one_table():    elems=browser.find_elements_by_class_name("tb")    elems1= elems[1:]    content=[i.text for i in elems1]    return content#功能:将list对象N等分  def div_list(ls,n):      if not isinstance(ls,list) or not isinstance(n,int):          return []      ls_len = len(ls)      if n<=0 or 0==ls_len:          return []      if n > ls_len:          return []      elif n == ls_len:          return [[i] for i in ls]      else:          j = int(ls_len/n)            ls_return = []          for i in range(0,(n-1)*j,j):              ls_return.append(ls[i:i+j])          #算上末尾的j+k          ls_return.append(ls[(n-1)*j:])          return ls_return         #把一页内容写入csv文档  def Write_table_to_csv(fileName,list_tableContent):    #对列表格式修改,字符串写入的格式不对    file=open(fileName,'w',newline='')    writer1=csv.writer(file)    writer1.writerows(list_tableContent)    file.close()          #点击下一页def Click_next_page():    linkElem=browser.find_element_by_link_text("下一页")    linkElem.click()    for i in range(1,pages+1):    list_tableContent=Get_one_table()    list_tableContent1=div_list(list_tableContent,20)    fileName=str(i)+".csv"    Write_table_to_csv(fileName,list_tableContent1)    Click_next_page()    time.sleep(random.randint(0,5))

  

版本3

加入多线程采集

 

转载于:https://www.cnblogs.com/webRobot/p/5469946.html

你可能感兴趣的文章
position:fixed和z-index:1
查看>>
unity, 延迟执行代码
查看>>
unity, editable mesh
查看>>
android check box 自定义图片
查看>>
UVA 11044
查看>>
mysq找不到pid无法正常启动
查看>>
php实现抓取网站百度快照和百度收录数量的代码实例
查看>>
Qt那点事儿(三) 论父对象与子对象的关系
查看>>
jar 命令 打包装class文件的文件夹
查看>>
node.js express配置允许跨域
查看>>
set调用add报错:
查看>>
四轴飞行器1.2.1 RT-Thread 环境搭建
查看>>
choose&&char与char*区别
查看>>
51nod 1021 石子归并
查看>>
实验二:ICMP重定向攻击
查看>>
C/C++判断文件是否存在
查看>>
基础总结1
查看>>
随机算法
查看>>
洛谷 P1443 马的遍历
查看>>
AutoMapper中的Map和DynamicMap——高手注重细节,思考和总结
查看>>