当前位置: 首页 > 编程笔记 >

python数据抓取3种方法总结

沈翰
2023-03-14
本文向大家介绍python数据抓取3种方法总结,包括了python数据抓取3种方法总结的使用技巧和注意事项,需要的朋友参考一下

三种数据抓取的方法

  • 正则表达式(re库)
  • BeautifulSoup(bs4)
  • lxml

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

from get_html import download

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

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

1.正则表达式

from get_html import download
import re

url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'
page_content = download(url)
country = re.findall('class="h2dabiaoti">(.*?)</h2>', page_content) #注意返回的是list
survey_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 download
from bs4 import BeautifulSoup

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

3.lxml

from get_html import download
from 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数据抓取内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍Python进行数据提取的方法总结,包括了Python进行数据提取的方法总结的使用技巧和注意事项,需要的朋友参考一下 准备工作 首先是准备工作,导入需要使用的库,读取并创建数据表取名为loandata。 设置索引字段 在开始提取数据前,先将member_id列设置为索引字段。然后开始提取数据。 按行提取信息 第一步是按行提取数据,例如提取某个用户的信息。下面使用ix函数对member

  • 在我的硕士论文中,我正在探索通过web自动化从网站中提取数据的可能性。步骤如下: 登录网站(https://www.metal.com/Copper/201102250376) 输入用户名和密码 单击登录 将日期更改为2020年1月1日 刮取生成的表格数据,然后将其保存到csv文件中 用我电脑上的特定名称保存到特定文件夹 运行相同的序列,在同一浏览器窗口的新选项卡中下载其他材料的其他历史价格数据

  • 本文向大家介绍对python中执行DOS命令的3种方法总结,包括了对python中执行DOS命令的3种方法总结的使用技巧和注意事项,需要的朋友参考一下 1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息。 2. 使用Popen模块产生新的process 现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执行的信息。的确,

  • 本文向大家介绍Java获取随机数的3种方法,包括了Java获取随机数的3种方法的使用技巧和注意事项,需要的朋友参考一下 主要介绍了Java获取随机数的3种方法,主要利用random()函数来实现 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例: 从1到10的int型随数 方法2 获得随机数 通过java.Math包的random方法得到1-10的int随机数

  • 本文向大家介绍Java中如何获取mysql连接的3种方法总结,包括了Java中如何获取mysql连接的3种方法总结的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要来说说三种 Java 中获取 mysql 连接的方式,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 第一种:传统的连接方式; 第二种:读取配置文件方式; 第三种:数据库连接池。 一、传统的连接方式: 首先在 sr

  • 本文向大家介绍python读取各种文件数据方法解析,包括了python读取各种文件数据方法解析的使用技巧和注意事项,需要的朋友参考一下 python读取.txt(.log)文件 、.xml 文件 、excel文件数据,并将数据类型转换为需要的类型,添加到list中详解 1.读取文本文件数据(.txt结尾的文件)或日志文件(.log结尾的文件) 以下是文件中的内容,文件名为data.txt(与dat

  • 问题内容: 我试图从Flipkart网站上刮取客户评论。以下是链接。以下是我要抓取的代码,但它始终返回一个空列表。 因此,我尝试获取整个部分,但仅得到以下内容: 我没有得到其他内容。因此,下一次我尝试使用selenium,即使selenium又回来了。以下是我的selenium代码: 可能是什么问题?我在代码中犯任何错误吗?请帮助。我是Python的新手。 问题答案: 使用 reactjs 填充评

  • 本文向大家介绍详解Java实现多种方式的http数据抓取,包括了详解Java实现多种方式的http数据抓取的使用技巧和注意事项,需要的朋友参考一下 前言: 时下互联网第一波的浪潮已消逝,随着而来的基于万千数据的物联网时代,因而数据成为企业的重要战略资源之一。基于数据抓取技术,本文介绍了java相关抓取工具,并附上demo源码供感兴趣的朋友测试! 1)JDK自带HTTP连接,获取页面或Json