时间:2021-05-22
三种数据抓取的方法
*利用之前构建的下载网页函数,获取目标网页的html,我们以https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/为例,获取html。
from get_html import downloadurl = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'page_content = download(url)*假设我们需要爬取该网页中的国家名称和概况,我们依次使用这三种数据抓取的方法实现数据抓取。
1.正则表达式
from get_html import downloadimport reurl = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'page_content = download(url)country = re.findall('class="h2dabiaoti">(.*?)</h2>', page_content) #注意返回的是listsurvey_data = re.findall('<tr><td bgcolor="#FFFFFF" id="wzneirong">(.*?)</td></tr>', page_content)survey_info_list = re.findall('<p> (.*?)</p>', survey_data[0])survey_info = ''.join(survey_info_list)print(country[0],survey_info)2.BeautifulSoup(bs4)
from get_html import downloadfrom bs4 import BeautifulSoupurl = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'html = download(url)#创建 beautifulsoup 对象soup = BeautifulSoup(html,"html.parser")#搜索country = soup.find(attrs={'class':'h2dabiaoti'}).textsurvey_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"]/h2') #返回列表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数据抓取3种方法的文章就介绍到这了,更多相关python数据抓取内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文给大家总结的struct数据有3种初始化方法1、顺序2、C风格的乱序3、C++风格的乱序下面通过示例代码详细介绍这三种初始化方法。1)顺序这种方法很常见,在
这两天学习了python3实现抓取网页资源的方法,发现了很多种方法,所以,今天添加一点小笔记。1、最简单importurllib.requestresponse
Python四种逐行读取文件内容的方法下面四种Python逐行读取文件内容的方法,分析了各种方法的优缺点及应用场景,以下代码在python3中测试通过,pyth
本文实例总结了python动态加载包的方法。分享给大家供大家参考,具体如下:动态加载模块有三种方法1.使用系统函数__import_()stringmodule
通常分页有3种方法,分别是asp.net自带的数据显示空间如GridView等自带的分页,第三方分页控件如aspnetpager,存储过程分页等。这里分别做总结