使用Beautifulsoup模块爬取药智网数据

Tips:1.爬取多页时,先用一页的做测试,要不然ip容易被封

2.自己常用的处理数据的方法:

  1. reg=re.compile('正则表达式')
  2. data=reg.sub('要替换的字符串',data)

代码(其实没多少)

  1. # encoding=utf-8
  2. from bs4 import BeautifulSoup
  3. import urllib2
  4. import time
  5. class YBZC():
  6. def __init__(self):
  7. self.user_agent='Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
  8. self.headers={'User-Agent':self.user_agent}
  9. def getHtml(self,pageIndex):
  10. try:
  11. url='http://db.yaozh.com/zhuce?p='+str(pageIndex)
  12. request=urllib2.Request(url,headers=self.headers)
  13. respone=urllib2.urlopen(request)
  14. html=respone.read()
  15. return html
  16. except urllib2.URLError,e:
  17. if hasattr(e,'reason'):
  18. print u"连接失败",e.reason
  19. return None
  20. def getItems(self):
  21. for i in range(1,13):
  22. html=self.getHtml()
  23. soup=BeautifulSoup(html,"html.parser")
  24. tr_list=soup.find_all('tr')
  25. # 表格标题
  26. if i==1:
  27. for item in tr_list[0]:
  28. if item not in ['\n','\t',' ']:
  29. with open('yaopinzhuce1030.txt','a') as f:
  30. f.write(item.get_text(strip=True).encode('utf-8')+'|')
  31. #=========================2015-10-30================================
  32. # 第一次的时候是现将数据全部都取下来,等存入文件的时候再筛选,现在直接筛选再
  33. # 存入文件中,当时的时候并没有想到并且没有理解get_text()方法,这个也是
  34. # 代码不精简的原因。。。。
  35. #===================================================================
  36. # list_tit=[]
  37. # for ths in tr_list[0]:
  38. # if ths.find('a'):
  39. # for item in ths:
  40. # if type(item)!=unicode:
  41. # list_tit.append(item.string)
  42. # else:
  43. # list_tit.append(ths.get_text(strip=True))
  44. # for item in list_tit:
  45. # if item not in ['',' ','\n','\t']:
  46. # with open('yaopinzhuce_new.txt','a') as f:
  47. # f.write(item.encode('utf-8')+'|')
  48. # 表格内容
  49. f=open('yaopinzhuce1030.txt','a')
  50. for tr in tr_list[1:]:
  51. f.write('\n')
  52. for item in tr:
  53. if item not in ['',' ','\n']:
  54. if item.string==None:
  55. f.write('None'+'|')
  56. else:
  57. f.write(item.string.encode('utf-8')+'|')
  58.  
  59. f.close()
  60. print 'sleeping... pageloading %d/12' %i
  61. time.sleep(5)
  62.  
  63. spider=YBZC()
  64. spider.getItems()

使用Beautifulsoup爬取药智网数据的更多相关文章

  1. 八爪鱼采集器︱爬取外网数据(twitter、facebook)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 要想采集海外数据有两种方式:云采集+单机采集. ...

  2. python3 requests + BeautifulSoup 爬取阳光网投诉贴详情实例代码

    用到了requests.BeautifulSoup.urllib等,具体代码如下. # -*- coding: utf-8 -*- """ Created on Sat ...

  3. java爬虫,爬取当当网数据

     背景:女票快毕业了(没错!我是有女票的!!!),写论文,主题是儿童性教育,查看儿童性教育绘本数据死活找不到,没办法,就去当当网查询下数据,但是数据怎么弄下来呢,首先想到用Python,但是不会!!百 ...

  4. python爬虫爬取赶集网数据

    一.创建项目 scrapy startproject putu 二.创建spider文件 scrapy genspider  patubole patubole.com   三.利用chrome浏览器 ...

  5. 【转】java爬虫,爬取当当网数据

     背景:女票快毕业了(没错!我是有女票的!!!),写论文,主题是儿童性教育,查看儿童性教育绘本数据死活找不到,没办法,就去当当网查询下数据,但是数据怎么弄下来呢,首先想到用Python,但是不会!!百 ...

  6. python爬取返利网中值得买中的数据

    先使用以前的方法将返利网的数据爬取下来,scrapy框架还不熟练,明日再战scrapy 查找目标数据使用的是beautifulsoup模块. 1.观察网页,寻找规律 打开值得买这块内容 1>分析 ...

  7. 初识python 之 爬虫:爬取中国天气网数据

    用到模块: 获取网页并解析:import requests,html5lib from bs4 import BeautifulSoup 使用pyecharts的Bar可视化工具"绘制图表& ...

  8. 使用python爬取东方财富网机构调研数据

    最近有一个需求,需要爬取东方财富网的机构调研数据.数据所在的网页地址为: 机构调研 网页如下所示: 可见数据共有8464页,此处不能直接使用scrapy爬虫进行爬取,因为点击下一页时,浏览器只是发起了 ...

  9. 基于爬取百合网的数据,用matplotlib生成图表

    爬取百合网的数据链接:http://www.cnblogs.com/YuWeiXiF/p/8439552.html 总共爬了22779条数据.第一次接触matplotlib库,以下代码参考了matpl ...

随机推荐

  1. Redis客户端连接池

    使用场景 对于一些大对象,或者初始化过程较长的可复用的对象,我们如果每次都new对象出来,那么意味着会耗费大量的时间. 我们可以将这些对象缓存起来,当接口调用完毕后,不是销毁对象,当下次使用的时候,直 ...

  2. WebSphere MQ 安装

    WebSphereMQ可以在IBM官网下载,有试用版90天的.下载地址http://www.ibm.com/developerworks/cn/downloads/ws/wmq/index.html ...

  3. Samsung S4卡屏卡在开机画面的不拆机恢复照片一例

    大家好!欢迎再次来到我Dr.wonder的世界, 今天我给你们带来Samsung S4 I9508 卡屏开在开机画面的恢复!非常de经典. 首先看图 他开机一直卡在这里, 然后 ,我们使用专业仪器,在 ...

  4. ebs history to look for password

    -bash-3.2$ ps -ef|grep tns root 101 2 0 Jun01 ? 00:00:00 [netns] oravibs 10625 1 0 Sep09 ? 00:01:03 ...

  5. DataTable插件指定某列不可排序

    datatable是一个jQuery扩展的表格插件.其提供了强大的表格功能. 官方地址:http://www.datatables.NET/ DataTable提供的表格样式里面,第一行都是会有排序功 ...

  6. [转]html5音乐播放器

    http://files.cnblogs.com/files/xjyggd/html5music.rar import java.io.File;import java.util.ArrayList; ...

  7. 【POJ2886】Who Gets the Most Candies?-线段树+反素数

    Time Limit: 5000MS Memory Limit: 131072K Case Time Limit: 2000MS Description N children are sitting ...

  8. Linux Shell基础知识

    一.文件系统和安全 chmod命令 chmod命令有两种模式,一种是符号模式,用ugo执行用户,用rwx执行权限:另一种是绝对模式,用八进制不同位置的不同值来代表不同用户的不同权限. 符号模式 chm ...

  9. JMeter入门使用指南

    初识JMeter 最近开始接触和使用JMeter进行性能测试,也是因为工作需要,不得不学习更多新技能,在此之前一直使用LR进行WEB系统的压力测试,但是在ZK开发的WEB系统,我选择使用JMeter. ...

  10. Java程序员们最常犯的10个错误

    将数组转化为一个列表时,程序员们经常这样做: List<String> list = Arrays.asList(arr); Arrays.asList()会返回一个ArrayList对象 ...