版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大数据技术在会计与财务中的应用2026/9/8《大数据技术在会计与财务中的应用》配套课件第8章·8.1requests库2026/9/7目录8.1.1访问网页8.1.2模拟登录8.1requests库8.1requests库|02/10requests库requests库是爬虫中最常用的库之一,我们可以使用它向服务器发送请求、访问网页。requests库是Python的第三方库,因此需要使用pipinstallrequests进行安装。本节中,我们将介绍如何使用requests库访问页面,并实现模拟登录。2026/9/8《大数据技术在会计与财务中的应用》配套课件8.1requests库|03/10requests库访问网页(1)requests库的get方法requests.get()是requests库最常用的方法,我们可以使用它访问指定的网页,并将信息存储至本地。requests.get(url,params,**kwargs)中,url为请求访问的网址,params为url的额外参数(可选),**kwargs为控制访问的参数(可选),包括请求头headers、设定代理服务器的proxies、设定超时时间的timeout等。例如,我们可以使用如下代码访问百度主页。importrequestsr=requests.get('/')2026/9/8《大数据技术在会计与财务中的应用》配套课件8.1requests库|04/10requests库(2)response对象requests.get()会将所获取的所有信息会返回至response对象中,即上述代码中的变量r。response对象具有许多属性,如状态码(r.status_code)、响应内容的字符串形式(r.text)、响应内容的二进制形式(r.content)等。状态码。在开始爬虫之前,我们首先需要检查请求状态,即是否已经成功获取到url位置的资源。我们可以使用r.status_code查看请求的返回状态,若显示“200”则表示请求成功,其他状态码均表示请求失败。响应内容的字符串形式。以百度主页为例,我们可以使用r.text查看响应内容的字符串形式。响应内容的二进制形式。我们可以使用r.content获得响应内容的二进制形式(bytes形式)。2026/9/8《大数据技术在会计与财务中的应用》配套课件8.1requests库|05/10requests库表8-1总结了requests库的主要方法。2026/9/8《大数据技术在会计与财务中的应用》配套课件表8-1requests库的主要方法方法说明get请求获取URL位置的资源,是requests库最常用的方法head请求获取URL位置的资源的响应消息报告post请求向URL位置的资源后添加新的数据put请求向URL位置存储一个资源patch请求改变URL位置的资源的部分内容delete请求删除URL位置存储的资源8.1requests库|06/10requests库模拟登录在爬虫的过程中,我们往往会遇到各种各样的反爬机制。并且,只有在我们登陆自己的账号后,网页才会显示全部信息。因此,一个关键的问题便是如何使用requests库登录账号、且不被识别为爬虫程序。为解决以上问题,我们需要利用**kwargs所提供的请求头参数headers。headers是一个字典,包含了我们请求url时所携带的信息,其中最常用到的键有User-Agent和Cookie。User-Agent为“用户代理”,我们可以通过设置User-Agent的值将爬虫程序伪装成常见的浏览器。Cookie则携带了登录状态的信息,通过设置Cookie的值,我们可以实现模拟登录。2026/9/8《大数据技术在会计与财务中的应用》配套课件8.1requests库|07/10requests库以豆瓣网为例:登录个人账号后,使用F12打开开发者模式。点击“网络”后,在左侧找到当前页面“”然后点击“标头”。在“标头”页,我们可以找到User-Agent和Cookie的值,如图8-4和图8-5所示;将其复制并粘贴到代码中,并执行代码:2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-4开发者模式下的User-Agent获取图8-5开发者模式下的Cookie获取8.1requests库|08/10requests库importrequestsheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/103.0.5060.53Safari/537.36Edg/103.0.1264.37','Cookie':'douban-fav-remind=1;ll="108288";gr_user_id=9cda56a1-b28b-4653-8337-997d08e96ae9(以下省略)r=requests.get('/',headers=headers)r.status_coder.text此时,状态码显示为“200”,即访问成功。再检查r.text的内容,r.text中出现了“发照片”“推荐网页”“写日记”的字符,与登录后的页面一致。因此,通过添加User-Agent和Cookie,我们已经成功访问并登录了豆瓣主页。2026/9/8图8-5开发者模式下的Cookie获取8.1requests库|09/102026/9/8《大数据技术在会计与财务中的应用》配套课件谢谢观赏!8.1requests库|10/10大数据技术在会计与财务中的应用作者:张敏等2026/9/8《大数据技术在会计与财务中的应用》配套课件第8章·8.2BeautifulSoup库2026/9/7目录8.2.1BeautifulSoup简介8.2.2标签8.2.3find_all函数8.2.4实例:爬取股吧评论数据8.2BeautifulSoup库8.2BeautifulSoup库|02/19BeautifulSoup库BeautifulSoup简介BeautifulSoup是Python的第三方库,它可以解析包括HTML格式在内的多种网页。其安装方法为pipinstallbeautifulsoup4。图8-8展示了开发者模式下的“上证指数”股吧网页,本节以此为例进行介绍。2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-8开发者模式下的“上证指数”股吧网页8.2BeautifulSoup库|03/19BeautifulSoup库使用soup=BeautifulSoup(r.text,‘html.parser’)选择HTML解析器进行解析:frombs4importBeautifulSoupimportrequestsurl='/list,zssh000001_1.html'r=requests.get(url)soup=BeautifulSoup(r.text,'html.parser')print(soup)2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-9BeautifulSoup的解析结果8.2BeautifulSoup库|04/19BeautifulSoup库标签(1)标签的基本元素如图8-9所示,HTML页面的源代码是由形如“<pclass="value">text</p>”的许多标签构成的。标签之间存在上下游的关系,因此又构成了标签树。其中,p是标签的名称,其会成对地出现在标签首尾;class="value"是标签的属性,一个标签可能有零至多个属性。class为属性的名称,value为属性的内容,二者本质上是一组键值对;text是标签的非属性字符串,即尖括号之间的字符串。2026/9/8《大数据技术在会计与财务中的应用》配套课件8.2BeautifulSoup库|05/19BeautifulSoup库(2)标签信息的获取使用soup.a获取名称为a的标签。需要注意的是,若存在多个名称相同的标签,python只会返回其中的第一个。使用soup.a.attrs,可以获取该标签的属性信息,即由属性名称和属性内容构成的键值对。使用soup.a.attrs['title']或soup.a.attrs.get('title'),可以获取属性title对应的值。使用soup.a.string,可以获取a标签内的非属性字符串。2026/9/8《大数据技术在会计与财务中的应用》配套课件表8-2标签的基本元素soup=<pclass="value">text</p>元素说明获取方式<pclass="value">text</p>标签自身soup.pp标签的名称class="value"标签的属性,class为属性名称,value为属性的值soup.p.attrstext标签内非属性字符串soup.p.string8.2BeautifulSoup库|06/19BeautifulSoup库(3)标签树标签之间存在上下游的关系,因此构成了一颗标签树。图8-9中的源代码可以通过如下图形表示:div标签是级别最高的标签,其下面有5个子标签span。第三个span标签下有子标签a,第四个span标签下有两个子标签a和input,如图8-10所示。2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-10标签树的示意图8.2BeautifulSoup库|07/19BeautifulSoup库我们可以采用下行遍历、上行遍历和平行遍历的方式遍历标签树,从而获取子标签或父标签中信息。tag.contents是下行遍历最常见的方法,其会以列表的形式返回tag标签下的所有子节点。注意,子节点不仅包含子标签节点,还包括字符串节点。例如,soup.div.contents的结果中包含了5个span子标签,但也有6个“\n”,如图8-11所示。2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-11使用tag.contents的返回结果8.2BeautifulSoup库|08/19BeautifulSoup库在上行遍历中,我们可以使用tag.parent获取父标签。例如,使用soup.font.parent获取font标签的父标签a。In:soup.font.parentOut:<adata-popper="1893375574668026"data-poptype="1"href="///1893375574668026"target="_blank"><font>股友会买不会卖</font></a>在平行遍历中,我们可以使用tag.next_sibling(tag.previous_sibling)获取当前标签的后一个(前一个)节点。In:soup.span.next_siblingOut:'\n'In:soup.span.next_sibling.next_siblingOut:<spanclass="l2a2">6</span>2026/9/8《大数据技术在会计与财务中的应用》配套课件8.2BeautifulSoup库|09/19BeautifulSoup库表8-3总结了标签树遍历的常见方式。2026/9/8《大数据技术在会计与财务中的应用》配套课件表8-3标签树的遍历方式遍历方式说明下行遍历tag.contents,返回所有子节点上行遍历tag.parent,返回父标签平行遍历tag.next_sibling,返回下一个平行节点tag.previous_sibling,返回上一个平行节点8.2BeautifulSoup库|10/19BeautifulSoup库find_all函数BeautifulSoup库提供了强大的搜索函数find_all,其可以在标签树中进行搜索,查找满足特定条件的所有标签并返回一个列表。其标准形式为:find_all(name,attrs,recursive,text,**kwargs),其中最常用的参数是name和attrs。(1)根据标签名称(name)查找标签通过BeautifulSoup解析html后,我们可以使用soup.find_all('span')查找所有名为“span”的标签,共得到5个结果,如图8-12所示。2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-12根据标签名称查找标签的结果8.2BeautifulSoup库|11/19BeautifulSoup库(2)根据标签属性(attrs)查找标签我们可以使用soup.find_all(attrs={'class':'l1a1'}),查找所有属性名称为“class”,属性内容为“l1a1”的标签。属性的名称和内容应以键值对的形式赋值给attrs。代码返回结果[<spanclass="l1a1">320</span>]。(3)根据标签内字符串(text)查找标签我们可以使用text参数查找包含某些字符串的标签。例如,我们想要查找html中的时间信息,其以字符串的形式出现在标签“<spanclass="l5a5">07-2921:04</span>”中。构建正则表达式r'\d{2}-\d{2}\d{2}:\d{2}',将其传给参数text,即可查找到该标签。2026/9/8《大数据技术在会计与财务中的应用》配套课件8.2BeautifulSoup库|12/19BeautifulSoup库实例:使用BeautifulSoup爬取股吧评论数据本节中,我们将以A股上市公司“赣锋锂业”的股吧(/list,002460.html)为例(图8-13),展示如何使用BeautifulSoup爬取股评数据,包括每条股评的阅读量、评论量、url链接、标题、作者以及时间信息。2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-13“赣锋锂业”的股吧页面8.2BeautifulSoup库|13/19BeautifulSoup库首先,我们使用requests库获得网页的源代码,并通过BeautifulSoup库进行解析。frombs4importBeautifulSoupimportrequestsurl='/list,002460_1.html'r=requests.get(url)soup=BeautifulSoup(r.text)打印soup的结果,不难发现,每条股评的源代码都存在于标签<divclass="articlehnormal_post">下,而股评的阅读量、评论量、url链接、标题、作者和时间信息又会出现在div标签的子孙标签中,如span标签、a标签、font标签等,如图8-14所示。2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-14“赣锋锂业”股吧页面源代码的解析结果8.2BeautifulSoup库|14/19BeautifulSoup库因此,可以利用find_all函数进行搜索所有名称为“div”,属性为“class=”articlehnormal_post“”的标签,即使用代码:div=soup.find_all('div',attrs={'class':'articlehnormal_post’})打印搜索到的第一个结果div[0],其正是页面中的第一条股评,证明上述抓取方式有效。2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-15第一条股评的解析结果8.2BeautifulSoup库|15/19BeautifulSoup库div标签下有众多的子孙标签,我们使用div[0].contents进行下行遍历。“阅读量”和“评论量”分别存在于div[0].contents[1]和div[0].contents[3]的非属性字符串中,可以使用.string方式获取;“url链接”和“标题”出现在第三个span标签的子标签a的属性中,即div[0].contents[5].contents[-1],可以使用.get('href')和.get(title)获取。“作者名称”的下行遍历较为复杂,其在第四个span标签的子标签a的子标签的font的字符串中,因此应使用div[0].contents[7].contents[0].contents[0].string获取;最后,我们使用div[0].contents[9].string获得时间信息。2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-16对div[0]进行下行遍历的结果8.2BeautifulSoup库|16/19BeautifulSoup库在了解单条股评的爬取方法后,我们可以将上述代码写入循环。由于页面信息会随着股民的发帖而动态变化,而BeautifulSoup库的处理需要一定时间,为减少页面刷新的干扰,我们首先使用requests库访问“赣锋锂业”的前10页,并将源代码保存在列表htmls中。frombs4importBeautifulSoupimportrequestshtmls=[]urls=['/list,002460_'+str(i)+'.html'foriinrange(1,11)]forurlinurls:r=requests.get(url)htmls.append(r.text)2026/9/8《大数据技术在会计与财务中的应用》配套课件8.2BeautifulSoup库|17/19BeautifulSoup库然后,使用两层for循环,逐一解析htmls中的页面并查找每个页面的所有股评标签div,再逐一提取每个div中的股评信息。具体代码与上述代码基本相同。最后,我们将结果存储至DataFrame中,并输出至excel文件,如图8-17所示。forhtmlinhtmls:soup=BeautifulSoup(html)div=soup.find_all('div',attrs={'class':'articlehnormal_post'})foriinrange(len(div)):read=div[i].contents[1].stringremark=div[i].contents[3].stringhref=div[i].contents[5].contents[-1].get('href')title=div[i].contents[5].contents[-1].get('title')author=div[i].contents[7].contents[0].contents[0].stringtime=div[i].contents[9].stringread_list.append(read)remark_list.append(remark)href_list.append(href)title_list.append(title)author_list.append(author)time_list.append(time)2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-17股吧评论的爬虫结果8.2BeautifulSoup库|18/192026/9/8《大数据技术在会计与财务中的应用》配套课件谢谢观赏!8.2BeautifulSoup库|19/19大数据技术在会计与财务中的应用作者:张敏等2026/9/7《大数据技术在会计与财务中的应用》配套课件第8章·8.3正则表达式目录8.3.1正则表达式的语法8.3.2使用re库抓取文本信息8.3.3实例:提取年报经营情况讨论与分析文本8.3正则表达式8.3正则表达式|02/13正则表达式正则表达式的语法我们可以用特定的操作符表示一类具有相应特征的字符串,表8-4列示了正则表达式的常见语法。例如,“\d{5}”可以表示所有由五个数字组成的字符串。2026/9/7《大数据技术在会计与财务中的应用》配套课件表8-4常见的操作符操作符说明举例[]字符集,表示单个字符的取值范围[ABC]表示该字符为A或B或C[^]非字符集,不在[]中的字符[^ABC]表示该字符不是A或B或C.表示任何字符(换行符除外).可以匹配除\n以外的任何字符\d表示0-9的任意数字等价于[0-9]\w表示任意字母、数字及下划线等价于[A-Za-z0-9_]^表示以该字符串开头^A表示A,且A在该字符串的开头$表示以该字符串结尾$A表示A,且A在该字符串的结尾*重复前一个字符0至无数次AB*表示A、AB、ABB…+重复前一个字符1至无数次AB+表示AB、ABB…?重复前一个字符0或1次AB?表示A、AB{m}重复前一个字符m次AB{3}表示ABBB{m,n}重复前一个字符m至n次AB{2,4}表示ABB、ABBB、ABBBBa|b表示a字符或b字符AB|AC表示AB或AC8.3正则表达式|03/13正则表达式使用re库抓取文本信息(1)search函数re.search(pattern,txt,flags=0)包含3个参数,pattern为正则表达式,txt为待查找的文本,flags为控制标记。search函数会在txt中搜索首次满足pattern条件的字符,并返回match对象。以下为使用search函数匹配“Beijing010Shanghai021”中首个由3位数字组成的字符的代码:importretxt='Beijing010Shanghai021'result=re.search(r'\d{3}',txt)ifresult:print(result.group(0))print(result.span())结果显示为010、(8,11),表示满足该正则表达式的首个字符串为010,开始于第8个字符,结束于第11个字符。2026/9/7《大数据技术在会计与财务中的应用》配套课件8.3正则表达式|04/13正则表达式(2)match函数re.match(pattern,txt,flags=0)包含3个参数,pattern为正则表达式,txt为待查找的文本,flags为控制标记。match函数要求待匹配的文本出现在字符串之首。txt='010Beijing'result=re.match(r'\d{3}',txt)ifresult:print(result.group(0))在这段代码中,我们使用match函数匹配“010Beijing”中出现在句首的3位数字,并得到结果“010”。需要注意的是,若待匹配文本不在句首,如字符串为“Beijing010”,则此时match函数无法搜索到符合条件的对象。2026/9/7《大数据技术在会计与财务中的应用》配套课件8.3正则表达式|05/13正则表达式(3)findall函数re.findall(pattern,txt,flags=0)包含3个参数,pattern为正则表达式,txt为待查找的文本,flags为控制标记。findall函数会在txt中搜索满足pattern条件的所有字符串,并以列表形式返回结果。由于结果的全面性,re.findall函数是re库中最常用的函数之一。txt='Beijing010Shanghai021'result=re.findall(r'\d{3}',txt)ifresult:print(result)在这段代码中,我们使用findall函数匹配“Beijing010Shanghai021”中所有由3位数字组成的字符。打印result的结果为:['010','021'],2026/9/7《大数据技术在会计与财务中的应用》配套课件8.3正则表达式|06/13正则表达式实例:从公司年报中提取“经营情况讨论与分析”部分的文本信息近年来,金融学、会计学的大量文献研究了公司年报中的“经营情况讨论与分析”(“管理层讨论与分析”)的文本信息。在本节中,我们将介绍如何re库和正则表达式从A股上市公司的年报中提取这部分信息。以股票代码为000001至000010的9家公司在2020年发布的年度报告为例。首先,我们将年报文本下载,并保存至同一文件夹下的txt文档中。2026/9/7《大数据技术在会计与财务中的应用》配套课件8.3正则表达式|07/13正则表达式为确定有效的正则表达式,我们需要大致浏览几份报告,尤其需要了解“经营情况讨论与分析”部分的上下文特征,从而根据上下文的关键词定位我们所需要的信息。我们发现,“经营情况讨论与分析”的正文开始之前通常会写有“经营情况讨论与分析”的小标题,如图8-19所示;其下一章(节)均为“重要事项”,如图8-20所示。2026/9/7《大数据技术在会计与财务中的应用》配套课件图8-19正文之前通常有“经营情况讨论与分析”的小标题图8-20“经营情况讨论与分析”的下一章(节)通常为“重要事项”8.3正则表达式|08/13正则表达式因此,我们可以初步考虑正则表达式r‘经营情况讨论与分析(.*?)重要事项’,然后使用findall函数查找所有以字符“经营情况讨论与分析”开始,以字符“重要事项”结束的字符串。(.*?)表明中间部分的字符串可以为除换行符外的任意字符。值得注意的是,由于.操作符无法匹配换行符,而年报文本中存在大量的换行符,因此我们需要调整re.findall()的第三个参数为re.S,否则该正则表达式无法匹配到任何文本。以平安银行(000001)的年报为样本进行测试:report=[]withopen('年报/000001.txt',encoding='utf-8')asf:lines=f.readlines()forlineinlines:report.append(line)report=''.join(report)pattern1=r'经营情况讨论与分析(.*?)重要事项'mda=re.findall(pattern1,report,re.S)2026/9/7《大数据技术在会计与财务中的应用》配套课件图8-21以“平安银行”年报为例进行测试的结果8.3正则表达式|09/13正则表达式然而,我们发现这种做法的结果并不理想。主要问题有两点:第一,目录中位于“经营情况讨论与分析”和“重要事项”之间的文字由于同样满足该正则表达式的条件,因此出现在结果的第一个元素中(索引0)。为将目录间的文字与“经营情况讨论与分析”的正文加以区分,我们需要进一步比较二者的不同:不难发现,目录中“经营情况讨论与分析”后会出现若干个.字符(图8-22),而“经营情况讨论与分析”的正文开始前的小标题后是换行符(\n)。因此,不妨将正则表达式修改为r'经营情况讨论与分析[\n](.*?)重要事项'。2026/9/7《大数据技术在会计与财务中的应用》配套课件图8-22目录中“经营情况讨论与分析”后紧接若干个.字符8.3正则表达式|10/13正则表达式第二,“经营情况讨论与分析”的正文部分被一分为二,成为了结果的第二和第三个元素。这表明字符“重要事项”不仅出现在“经营情况讨论与分析”部分结束后,同时也出现在“经营情况讨论与分析”的正文之中。重新检查文档,我们发现在“经营情况讨论与分析”的第小节(公允价值计量)中同样出现了字符“重要事项”,如图8-23所示。为加以区分,我们进一步修改正则表达式为r'经营情况讨论与分析[\n](.*?)[^他]重要事项',即要求“重要事项”前不出现字符“他”。2026/9/7《大数据技术在会计与财务中的应用》配套课件图8-23“经营情况讨论与分析”中出现过“其他重要事项”8.3正则表达式|11/13正则表达式重新执行上述代码,此时我们已经可以精准地匹配到“经营情况讨论与分析”的正文。接下来,我们只需要将上述代码改为循环形式,即可批量提取“经营情况讨论与分析”部分的文字信息了。result=[]forfileinfiles:report=[]withopen(file,encoding='utf-8')asf:lines=f.readlines()forlineinlines:report.append(line)report=''.join(report)pattern1=r'经营情况讨论与分析[\n](.*?)[^他]重要事项'mda=re.findall(pattern1,report,re.S)result.append(mda)2026/9/7《大数据技术在会计与财务中的应用》配套课件图8-24修改后的代码准确提取出相关内容8.3正则表达式|12/132026/9/7《大数据技术在会计与财务中的应用》配套课件谢谢观赏!8.3正则表达式|13/13大数据技术在会计与财务中的应用作者:张敏等2026/9/8《大数据技术在会计与财务中的应用》配套课件第8章·8.4Selenium库2026/9/7目录8.4.1Selenium基础8.4Selenium库8.4Selenium库|02/09selenium库Selenium基础selenium是一个用于Web应用程序自动化测试的工具。我们可以使用selenium库直接操作浏览器,模拟鼠标、键盘的一系列动作,实现“拟人化”的爬虫。本节中,我们将介绍如何使用selenium库访问网页,定位指定元素并进行鼠标和键盘的操作。(1)访问网页首先,我们从selenium库导入webdriver包,然后使用page=webdriver.Chrome()构造一个webdriver类的实例化对象;SeleniumManager会自动管理兼容的浏览器驱动。然后,使用page.get(url)即可访问并打开对应网页。fromseleniumimportwebdriverpage=webdriver.Chrome()page.get('/')2026/9/8《大数据技术在会计与财务中的应用》配套课件8.4Selenium库|03/09selenium库(2)定位在操作鼠标和键盘之前,我们首先需要定位准备操作的元素。表8-5列示了webdriver提供的多种元素定位的方法。其中,最常用为find_element_by_xpath和find_element_by_css_selector。2026/9/8《大数据技术在会计与财务中的应用》配套课件表8-5元素定位的方法方法说明特点find_element_by_xpath根据XPath(XML路径语言)定位元素可以更加精准地定位元素find_element_by_css_selector根据css选择器定位元素find_element_by_id根据id定位元素用于定位特征明显的元素find_element_by_name根据name定位元素find_element_by_class_name根据属性(class)名称定位元素find_element_by_tag_name根据标签(tag)名称定位元素8.4Selenium库|04/09selenium库我们将以百度主页为例,介绍如何定位“搜索框”。使用F12打开开发者模式,点击左上角的选择器,将其移动至待定位的元素(搜索框)并单击。此时,部分源代码的底色变为浅蓝色,表明这就是搜索框所对应的源代码。不难发现,其id为“kw”、name为“wd”、属性名称为“s_ipt”、标签名称为“input”。2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-25利用选择器定位特定元素因此,我们可以使用以下代码定位搜索框:page.find_element_by_id('kw')page.find_element_by_name('wd')page.find_element_by_class_name('s_ipt')page.find_element_by_tag_name('input')8.4Selenium库|05/09selenium库在浅蓝色代码处单击鼠标右键,选择“Copy-CopyXPath”或“Copy-Copyselector”即可获得搜索框的XPath或cssselector信息,如图8-26所示。因此,我们同样可以使用以下代码定位搜索框:page.find_element_by_xpath('//*[@id="kw"]')page.find_element_by_css_selector('#kw')2026/9/8《大数据技术在会计与财务中的应用》配套课件图8-26复制XPath或selector信息8.4Selenium库|06/09selenium库(3)鼠标操作表8-6列示了webdriver中模拟鼠标操作的方法。我们可以在定位元素后直接操作鼠标,如使用page.find_element_by_xpath().click()左键单击指定元素。2026/9/8《大数据技术在会计与财务中的应用》配套课件表8-6鼠标操作的方法方法说明click左键单击context_click右键单击double_click左键双击drag_and_drop拖动move_to_element悬停8.4Selenium库|07/09selenium库(4)键盘操作表8-7列示了webdriver中模拟键盘操作的方法。我们可以在定位到元素后(如:搜索框、用户名和密码的输入框)使用send_keys()方法,将想要输入的字符串键入。若想使用如回车、复制等快捷键,则可以从mon.keys中导入Keys包。2026/9/8《大数据技术在会计与财务中的应用》配套课件表8-7键盘操作的方法方法说明send_keys('ABC')键入字符“ABC”send_keys(Keys.ENTER)回车键send_keys(Keys.SPACE)空格键send_keys(Keys.CONTROL,'a')全选send_keys(Keys.CONTROL,'c')复制send_keys(Keys.CONTROL,'x')剪切send_keys(Keys.CONTROL,'v')粘贴8.4Selenium库|08/092026/9/8《大数据技术在会计与财务中的应用》配套课件谢谢观赏!8.4Selenium库|09/09大数据技术在会计与财务中的应用作者:张敏等2026/9/8《大数据技术在会计与财务中的应用》配套课件第8章·8.5财新网新闻爬取案例2026/9/7目录8.5爬虫案例:使用Selenium爬取财新网新闻8.5爬虫案例:使用Selenium爬取财新网新闻8.5财新网新闻爬取案例|02/10爬虫案例:使用Selenium爬取财新网新闻当前,新闻文本数据成为会计学界构建文本变量以及研究信息中介的重要方法之一(顾文涛等,2020;张宗新和吴钊颖,2021)。财新网作为中国最具影响力的专业财经媒体之一,成为会计与金融研究中获取高质量文本数据的关键来源。财新报道覆盖资本市场监管、企业治理、财务舞弊、重大并购、行业变动及宏观经济政策等主题,与企业经营活动和会计信息质量密切相关。本节中,我们将以财新网的经济专栏(/)为例,展示如何使用selenium库爬取新闻的标题、作者、摘要以及正文。2026/9/8《大数据技术在会计与财务中的应用》配套课件8.5财新网新闻爬取案例|03/10爬虫案例:使用Selenium爬取财新网新闻首先,我们导入需要的库并使用page.get()打开网页。fromseleniumimportwebdriverfrommon.keysimportKeysimporttimepage=webdriver.Chrome()page.get('/')2026/9/8《大数据技术在会计与财务中的应用》配套课件8.5财新网新闻爬取案例|04/10爬虫案例:使用Selenium爬取财新网新闻进入经济专栏后,找到我们需要爬取的第一条新闻,使用F12打开开发者模式,并分别确定新闻标题、作者、摘要所对应的XPath。我们可以使用page.find_element_by_xpath().text获取该元素所对应的文本信息,并将其存储至变量中。title=page.find_element_by_xpath('//*[@id="listArticle"]/div[1]/h4/a').textauthor=page.find_element_by_xpath('//*[@id="listArticle"]/div[1]/span').textabstract=page.find_element_by_xpath('//*[@id="listArticle"]/div[1]/p').text2026/9/8《大数据技术在会计与财务中的应用》配套课件8.5财新网新闻爬取案例|05/10爬虫案例:使用Selenium爬取财新网新闻然后,使用click()单击新闻标题,在新的窗口打开新闻正文。为确保页面加载完毕,我们在此使用time.sleep(2)等待2秒。需要注意的是,因为我们希望在新的窗口中继续操作,故需要使用page.switch_to.window()使page对象转换至新的窗口。之后,继续确定新闻正文的XPath并将结果存储至变量中。最后,使用page.close()关闭当前页面并返回原先的窗口(经济专栏主页)。page
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF(晋) 187-2026爆速仪校准规范
- 第12章 软件新技术-3
- 2025年英国中资企业发展报告
- 从方舱医院看医患关系
- 医院消毒隔离知识培训版(中文版)
- 危险源辨识与风险评价控制试题(附答案)
- 危险源辨识与风险评价专项培训考试试题及答案
- 干孔内作业通风及扬尘抑制方案
- 危害安全案件警示录讲解
- 基础护理翻身拍背查房
- 江苏理工学院招聘专职辅导员考试真题2022
- JJF 1986-2022 差压式气密检漏仪校准规范
- 西方经济学(第二版)完整整套课件(马工程)
- 生鲜布局和陈列
- 高三数学复习备考总结与反思
- GB/T 29162-2012煤矸石分类
- 经济法全套课件-
- 马工程西方经济学(第二版)教学课件-8
- 北师大版小学数学三年级上册《小熊购物(一)》同步练习含答案
- DB11-T968-2021预制混凝土构件质量检验标准
- 国际金融课件(完整版)
评论
0/150
提交评论