使用Beautifulsoup爬取药智网数据
使用Beautifulsoup模块爬取药智网数据
Tips:1.爬取多页时,先用一页的做测试,要不然ip容易被封
2.自己常用的处理数据的方法:
- reg=re.compile('正则表达式')
- data=reg.sub('要替换的字符串',data)
代码(其实没多少)
- # encoding=utf-8
- from bs4 import BeautifulSoup
- import urllib2
- import time
- class YBZC():
- def __init__(self):
- self.user_agent='Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
- self.headers={'User-Agent':self.user_agent}
- def getHtml(self,pageIndex):
- try:
- url='http://db.yaozh.com/zhuce?p='+str(pageIndex)
- request=urllib2.Request(url,headers=self.headers)
- respone=urllib2.urlopen(request)
- html=respone.read()
- return html
- except urllib2.URLError,e:
- if hasattr(e,'reason'):
- print u"连接失败",e.reason
- return None
- def getItems(self):
- for i in range(1,13):
- html=self.getHtml()
- soup=BeautifulSoup(html,"html.parser")
- tr_list=soup.find_all('tr')
- # 表格标题
- if i==1:
- for item in tr_list[0]:
- if item not in ['\n','\t',' ']:
- with open('yaopinzhuce1030.txt','a') as f:
- f.write(item.get_text(strip=True).encode('utf-8')+'|')
- #=========================2015-10-30================================
- # 第一次的时候是现将数据全部都取下来,等存入文件的时候再筛选,现在直接筛选再
- # 存入文件中,当时的时候并没有想到并且没有理解get_text()方法,这个也是
- # 代码不精简的原因。。。。
- #===================================================================
- # list_tit=[]
- # for ths in tr_list[0]:
- # if ths.find('a'):
- # for item in ths:
- # if type(item)!=unicode:
- # list_tit.append(item.string)
- # else:
- # list_tit.append(ths.get_text(strip=True))
- # for item in list_tit:
- # if item not in ['',' ','\n','\t']:
- # with open('yaopinzhuce_new.txt','a') as f:
- # f.write(item.encode('utf-8')+'|')
- # 表格内容
- f=open('yaopinzhuce1030.txt','a')
- for tr in tr_list[1:]:
- f.write('\n')
- for item in tr:
- if item not in ['',' ','\n']:
- if item.string==None:
- f.write('None'+'|')
- else:
- f.write(item.string.encode('utf-8')+'|')
- f.close()
- print 'sleeping... pageloading %d/12' %i
- time.sleep(5)
- spider=YBZC()
- spider.getItems()
使用Beautifulsoup爬取药智网数据的更多相关文章
- 八爪鱼采集器︱爬取外网数据(twitter、facebook)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 要想采集海外数据有两种方式:云采集+单机采集. ...
- python3 requests + BeautifulSoup 爬取阳光网投诉贴详情实例代码
用到了requests.BeautifulSoup.urllib等,具体代码如下. # -*- coding: utf-8 -*- """ Created on Sat ...
- java爬虫,爬取当当网数据
背景:女票快毕业了(没错!我是有女票的!!!),写论文,主题是儿童性教育,查看儿童性教育绘本数据死活找不到,没办法,就去当当网查询下数据,但是数据怎么弄下来呢,首先想到用Python,但是不会!!百 ...
- python爬虫爬取赶集网数据
一.创建项目 scrapy startproject putu 二.创建spider文件 scrapy genspider patubole patubole.com 三.利用chrome浏览器 ...
- 【转】java爬虫,爬取当当网数据
背景:女票快毕业了(没错!我是有女票的!!!),写论文,主题是儿童性教育,查看儿童性教育绘本数据死活找不到,没办法,就去当当网查询下数据,但是数据怎么弄下来呢,首先想到用Python,但是不会!!百 ...
- python爬取返利网中值得买中的数据
先使用以前的方法将返利网的数据爬取下来,scrapy框架还不熟练,明日再战scrapy 查找目标数据使用的是beautifulsoup模块. 1.观察网页,寻找规律 打开值得买这块内容 1>分析 ...
- 初识python 之 爬虫:爬取中国天气网数据
用到模块: 获取网页并解析:import requests,html5lib from bs4 import BeautifulSoup 使用pyecharts的Bar可视化工具"绘制图表& ...
- 使用python爬取东方财富网机构调研数据
最近有一个需求,需要爬取东方财富网的机构调研数据.数据所在的网页地址为: 机构调研 网页如下所示: 可见数据共有8464页,此处不能直接使用scrapy爬虫进行爬取,因为点击下一页时,浏览器只是发起了 ...
- 基于爬取百合网的数据,用matplotlib生成图表
爬取百合网的数据链接:http://www.cnblogs.com/YuWeiXiF/p/8439552.html 总共爬了22779条数据.第一次接触matplotlib库,以下代码参考了matpl ...
随机推荐
- Redis客户端连接池
使用场景 对于一些大对象,或者初始化过程较长的可复用的对象,我们如果每次都new对象出来,那么意味着会耗费大量的时间. 我们可以将这些对象缓存起来,当接口调用完毕后,不是销毁对象,当下次使用的时候,直 ...
- WebSphere MQ 安装
WebSphereMQ可以在IBM官网下载,有试用版90天的.下载地址http://www.ibm.com/developerworks/cn/downloads/ws/wmq/index.html ...
- Samsung S4卡屏卡在开机画面的不拆机恢复照片一例
大家好!欢迎再次来到我Dr.wonder的世界, 今天我给你们带来Samsung S4 I9508 卡屏开在开机画面的恢复!非常de经典. 首先看图 他开机一直卡在这里, 然后 ,我们使用专业仪器,在 ...
- 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 ...
- DataTable插件指定某列不可排序
datatable是一个jQuery扩展的表格插件.其提供了强大的表格功能. 官方地址:http://www.datatables.NET/ DataTable提供的表格样式里面,第一行都是会有排序功 ...
- [转]html5音乐播放器
http://files.cnblogs.com/files/xjyggd/html5music.rar import java.io.File;import java.util.ArrayList; ...
- 【POJ2886】Who Gets the Most Candies?-线段树+反素数
Time Limit: 5000MS Memory Limit: 131072K Case Time Limit: 2000MS Description N children are sitting ...
- Linux Shell基础知识
一.文件系统和安全 chmod命令 chmod命令有两种模式,一种是符号模式,用ugo执行用户,用rwx执行权限:另一种是绝对模式,用八进制不同位置的不同值来代表不同用户的不同权限. 符号模式 chm ...
- JMeter入门使用指南
初识JMeter 最近开始接触和使用JMeter进行性能测试,也是因为工作需要,不得不学习更多新技能,在此之前一直使用LR进行WEB系统的压力测试,但是在ZK开发的WEB系统,我选择使用JMeter. ...
- Java程序员们最常犯的10个错误
将数组转化为一个列表时,程序员们经常这样做: List<String> list = Arrays.asList(arr); Arrays.asList()会返回一个ArrayList对象 ...