python如何读取网页中的数据

python如何读取网页中的数据,第1张

用Beautiful Soup这类解析模块:

Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree);

它提供简单又常用的导航(navigating),搜索以及修改剖析树的 *** 作;

用urllib或者urllib2(推荐)将页面的html代码下载后,用beautifulsoup解析该html;

然后用beautifulsoup的查找模块或者正则匹配将你想获得的内容找出来,就可以进行相关处理了,例如:

from BeautifulSoup import BeautifulSoup

html = '<html><head><title>test</title></head><body><p>test body</p></body></html>'

soup = BeautifulSoup(html)

soupcontents[0]name

# u'html'

soupcomtents[0]contents[0]name

# u'head'

head = soupcomtents[0]contents[0]

headparentname

# u'html'

headnext

# u'<title>test</title>

mport urllibrequest

import re

def getHtml(url):

page = urllibrequesturlopen(url)

html = pageread()

html = htmldecode('GBK')

return html

def getMeg(html):

reg = recompile(r'')

meglist = refindall(reg,html)

for meg in meglist:

with open('outtxt',mode='a',encoding='utf-8') as file:

filewrite('%s\n' % meg)

if __name__ == "__main__":

html = getHtml(url)

getMeg(html)

一般使用BeautifulSoup,还是比较简单的

soup=BeaitifulSoup(html,'htmlparser')

要找到某各元素使用find_all方法就行

for div in soupfind_all('div'):

但是经常会遇到网站有反爬的设置,比如子结点中含有换行符,只要写个函数去掉子结点间的换行符就行

一开始,基本上很多人都是用selenium IDE录制脚本开始的,我也是!有一本书写得很不错:selenium初学者指南!So,从录制回放开始我的selenium,而在这个过程中,不断地去补充我的html css知识,熟悉selenium的api!

慢慢地,发现录制的脚本在回放的时候经常报错,通过检查发现,是定位上的错误,导致这种定位的错误的最大原因是系统前端采用了某种框架,如tigerUI,exj所以HTML里面的标签很多都是动态的,比如id,class,name!这对selenium *** 作定位的元素而进行自动化来说是致命伤!

所以,开始自己写定位信息,这已经是必须的了!从而学习了xpth和css选择器,掌握了更加有效,快速和稳定地定位页面上的元素(定位的时候难免会碰到有iframe,这就得先切换到iframe中再进行定位了)!也就是,在selenium IDE上写脚本!

信心满满地在selenium IDE上写了长长地一段脚本,并且反复跑都能成功!总算尝到了一点点幸福的滋味!然后呢,问题来了,当我要修改和扩展这段的脚本的时候,才发现这效率是相当地低!一句句查!一句句改!多么痛的领悟!

另外,selenium IDE 默认启动的是火狐,在使用selenium RC 启动 IE 进行跑脚本时浏览器总是会报错!各种搞不定,各种不淡定!决定放弃使用IDE!

selenium有一个强大之处就是支持多种语方:java,C#,python等等,并且可以把录制的脚本转换成代码!我用的是java,果断走起!

不用说,当然是把脚本转为java代码了,在E >

# -- coding:utf-8 --

#标签 *** 作

from bs4 import BeautifulSoup

import urllibrequest

import re

#如果是网址,可以用这个办法来读取网页

#html_doc = ""

#req = urllibrequestRequest(html_doc)

#webpage = urllibrequesturlopen(req)

#html = webpageread()

html="""

"""

soup = BeautifulSoup(html, 'htmlparser') #文档对象

# 类名为xxx而且文本内容为hahaha的div

for k in soupfind_all('div',class_='atcTit_more'):#,string='更多'

print(k)

以上就是关于python如何读取网页中的数据全部的内容,包括:python如何读取网页中的数据、Python爬虫怎么抓取html网页的代码块、python怎么获取html中指定行内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9880366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存