使用Beautifulsoup爬取药智网数据

本文介绍如何利用Beautifulsoup模块从药智网爬取数据,并提供了处理数据的正则表达式方法,包括代码实现和注意事项,如防止IP被封。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

reg=re.compile('正则表达式')
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 
64 spider=YBZC()
65 spider.getItems()

 

转载于:https://www.cnblogs.com/RoundGirl/p/4924235.html

基于网络爬虫爬取源网数据python源码+项目说明(搭建数据库,含中成和化学品信息共计10万余条).zip基于网络爬虫爬取源网数据python源码+项目说明(搭建数据库,含中成和化学品信息共计10万余条).zip基于网络爬虫爬取源网数据python源码+项目说明(搭建数据库,含中成和化学品信息共计10万余条).zip基于网络爬虫爬取源网数据python源码+项目说明(搭建数据库,含中成和化学品信息共计10万余条).zip基于网络爬虫爬取源网数据python源码+项目说明(搭建数据库,含中成和化学品信息共计10万余条).zip基于网络爬虫爬取源网数据python源码+项目说明(搭建数据库,含中成和化学品信息共计10万余条).zip基于网络爬虫爬取源网数据python源码+项目说明(搭建数据库,含中成和化学品信息共计10万余条).zip 【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值