python网页数据抓取(三种数据抓取的方法(库)(bs4))

优采云 发布时间: 2022-02-19 15:20

  python网页数据抓取(三种数据抓取的方法(库)(bs4))

  本期文章将与大家分享如何在python中实现数据采集。小编觉得很实用,所以分享给大家作为参考,也跟着小编一起来看看吧。

  三种数据采集方法

  正则表达式(重新库)

  BeautifulSoup (bs4)

  lxml

  *利用之前构建的下载网页函数获取目标网页的html,我们以获取html为例。

  

  from get_html import download

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

  *假设我们需要抓取这个网页中的国名和简介,我们会依次使用这三种数据抓取方式来实现数据抓取。

  1.正则表达式

  from get_html import downloadimport re

url = &#39;https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/&#39;page_content = download(url)country = re.findall(&#39;class="h3dabiaoti">(.*?)&#39;, page_content) #注意返回的是listsurvey_data = re.findall(&#39;(.*?)&#39;, page_content)survey_info_list = re.findall(&#39;<p>  (.*?)&#39;, survey_data[0])survey_info = &#39;&#39;.join(survey_info_list)print(country[0],survey_info)</p>

  2.美汤(bs4)

  from get_html import downloadfrom bs4 import BeautifulSoup

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

survey_info = soup.find(attrs={&#39;id&#39;:&#39;wzneirong&#39;}).textprint(country,survey_info)

  3.lxml

  from get_html import downloadfrom lxml import etree #解析树url = &#39;https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/&#39;page_content = download(url)selector = etree.HTML(page_content)#可进行xpath解析country_select = selector.xpath(&#39;//*[@id="main_content"]/h3&#39;) #返回列表for country in country_select:

    print(country.text)survey_select = selector.xpath(&#39;//*[@id="wzneirong"]/p&#39;)for survey_content in survey_select:

    print(survey_content.text,end=&#39;&#39;)

  运行结果:

  

  最后参考《用Python编写网络爬虫》中三种方式的性能对比,如下图:

  

  仅供参考。

  谢谢阅读!《如何在python中实现数据捕获》的文章文章分享到这里。希望以上内容能够对大家有所帮助,让大家学习到更多的知识。如果你觉得文章是的,你可以分享出来让更多人看到!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线