python中如何实现数据抓取

这篇文章给大家分享的是有关python中如何实现数据抓取的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联是一家专业提供泽州企业网站建设,专注与成都网站建设、成都网站设计成都h5网站建设、小程序制作等业务。10年已为泽州众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

三种数据抓取的方法

  1. 正则表达式(re库)

  2. BeautifulSoup(bs4)

  3. lxml

*利用之前构建的下载网页函数,获取目标网页的html,我们以https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/为例,获取html。

python中如何实现数据抓取

from get_html import download

url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'page_content = download(url)

*假设我们需要爬取该网页中的国家名称和概况,我们依次使用这三种数据抓取的方法实现数据抓取。
1.正则表达式

from get_html import downloadimport re

url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'page_content = download(url)country = re.findall('class="h3dabiaoti">(.*?)', page_content) #注意返回的是listsurvey_data = re.findall('(.*?)', page_content)survey_info_list = re.findall('

  (.*?)

', survey_data[0])survey_info = ''.join(survey_info_list)print(country[0],survey_info)

2.BeautifulSoup(bs4)

from get_html import downloadfrom bs4 import BeautifulSoup

url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'html = download(url)#创建 beautifulsoup 对象soup = BeautifulSoup(html,"html.parser")#搜索country = soup.find(attrs={'class':'h3dabiaoti'}).text
survey_info = soup.find(attrs={'id':'wzneirong'}).textprint(country,survey_info)

3.lxml

from get_html import downloadfrom lxml import etree #解析树url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'page_content = download(url)selector = etree.HTML(page_content)#可进行xpath解析country_select = selector.xpath('//*[@id="main_content"]/h3') #返回列表for country in country_select:
    print(country.text)survey_select = selector.xpath('//*[@id="wzneirong"]/p')for survey_content in survey_select:
    print(survey_content.text,end='')

运行结果:
python中如何实现数据抓取
最后,引用《用python写网络爬虫》中对三种方法的性能对比,如下图:
python中如何实现数据抓取
仅供参考。

感谢各位的阅读!关于“python中如何实现数据抓取”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


分享标题:python中如何实现数据抓取
地址分享:http://scyanting.com/article/pcshjc.html