介绍
这篇文章给大家介绍python中数据抓取的方式有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>三种数据抓取的方法强>
- <李>
正则表达式(re库)
李> <李>BeautifulSoup (bs4)
李> <李>lxml
李>*利用之前构建的下载网页函数,获取目标网页的html,我们以https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/为例,获取html。
得到get_html import 下载 时间=url & # 39; https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/& # 39; page_content =,下载(url)
*假设我们需要爬取该网页中的国家名称和概况,我们依次使用这三种数据抓取的方法实现数据抓取。
<强> 1。正则表达式强>
得到get_html import 下载 import 再保险 时间=url & # 39; https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/& # 39; 时间=page_content 下载(url) 时间=country re.findall(& # 39;类=癶3dabiaoti"祝辞(. * ?)& lt;/h3> & # 39;,, page_content), #注意返回的是列表 时间=survey_data re.findall (& # 39; & lt; tr> & lt; td 背景=? FFFFFF", id=皐zneirong"祝辞(. * ?)& lt;/td> & lt;/tr> & # 39;,, page_content) 时间=survey_info_list re.findall (& # 39; & lt; p>(. * ?)& lt;/p> & # 39;, survey_data [0]) 时间=survey_info & # 39; & # 39; . join (survey_info_list) 打印(国家[0],survey_info)
<强> 2。BeautifulSoup (bs4) 强>
得到get_html import 下载 得到bs4 import  BeautifulSoup 时间=url & # 39; https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/& # 39; 时间=html 下载(url) #创建,beautifulsoup 对象 时间=soup BeautifulSoup (html、“html.parser") #搜索 时间=country soup.find (attrs={& # 39;类# 39;:& # 39;h3dabiaoti& # 39;})。text 时间=survey_info soup.find (attrs={& # 39; id # 39;: & # 39; wzneirong& # 39;})。text 打印(国家,survey_info)
<强> 3。lxml 强>
得到get_html import 下载 得到lxml import  etree #解析树 时间=url & # 39; https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/& # 39; 时间=page_content 下载(url) 时间=selector etree.HTML (page_content) #可进行xpath解析 时间=country_select selector.xpath (& # 39;//* [@ id=癿ain_content"]/h3 # 39;), #返回列表 for country  country_select拷贝: ,打印(country.text) 时间=survey_select selector.xpath (& # 39;//* [@ id=皐zneirong"]/p # 39;) for survey_content  survey_select拷贝: ,打印(survey_content.text结束=& # 39;& # 39;)
运行结果:
最后,引用《用python写网络爬虫》中对三种方法的性能对比,如下图:
关于python中数据抓取的方式有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。