用Beautiful Soup这类解析模块:
Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree);
它提供简单又常用的导航(navigating),搜索以及修改剖析树的 *** 作;
用urllib或者urllib2(推荐)将页面的html代码下载后,用beautifulsoup解析该html;
然后用beautifulsoup的查找模块或者正则匹配将你想获得的内容找出来,就可以进行相关处理了,例如:
from BeautifulSoup import BeautifulSouphtml = '<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中指定行内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)