导航:首页 > 净水问答 > python3xpath过滤多余标签

python3xpath过滤多余标签

发布时间:2021-12-16 04:26:15

1. python中如何将通过xpath提取部分html代码或者有什么其他方法

xpath
pyquery
bs4都可以,
这几个的官网都有教程,自己先看看

2. python爬数据,得到一个列表,但怎样去掉里面的span标签

html = """
<span class='red'>item1</span>
<div>
<span id='s1'>item2</span>
</div>
"""
# 使用 scrapy 的Selector
from scrapy.selector import Selector

# scrapy 的选择器支持 css和xpath选择。下面是css选择器。如果你了解前端JQuery的知识,
# 会发现
Selector(text=html).css('span::text').extract()
# 输出 : ['item1','item2']
Selector(text=html).css('span#s1::text').extract()
# 输出 : ['item2']
Selector(text=html).css('div>span::text').extract()
# 输出 : ['item2']

# 使用bs4
from bs4 import BeautifulSoup

soup = BeautifulSoup(html,'html.parser')
sl = soup.find_all("span")
result = [span.get_text() for span in sl]
print(result)
# ['item1', 'item2']

3. Python怎样获取XPath下的A标签的内容

1、在浏览器中打开网页。然后//div,就可以找到页面中的所有div了,因为//表示的是任意目录下查找。如图,页面有两个div,所以可以找到两个。

6、斜杠/表示的是获取子元素,比如div下面有两个子元素p,那么//div[2]/p获取的就是第二个div的子元素p。

4. Python3.6.3 中BeautifSoup过滤标签中的文本

直接span.string就可以取出代码里的字符串,包括中文

你在for循环那里,最后两行去掉,用print(six.string)代替就行

5. Python中scrapy爬虫,如何爬取ul标签下的多个并列的li标签中的内容,xpath应该怎么写

//div[@class="list-wrap"]//li/text()

然后用循环,不然所有内容会混在一起。

6. python爬虫 xpath多标签怎么写

加上其他条件,或者用element s, link_txt
,contains

7. 如何用python过滤html标签和准确的提取内容

可以参考这个实例,代码中有过滤html标签及提取内容:

Python网页爬虫入门——抓取网络贴吧内容实例
http://lovesoo.org/getting-started-python-web-crawler-to-crawl-the--post-bar-content-instance.html

8. python 爬虫怎么过滤正文以外的

利用bs4查找所有的div,用正则筛选出每个div里面的中文,找到中文字数最多的div就是属于正文的div了。定义一个抓取的头部抓取网页内容:

importrequests
headers={
'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/47.0.2526.106Safari/537.36',
'Host':'blog.csdn.net'}
session=requests.session()

defgetHtmlByRequests(url):
headers.update(
dict(Referer=url,Accept="*/*",Connection="keep-alive"))
htmlContent=session.get(url=url,headers=headers).content
returnhtmlContent.decode("utf-8","ignore")

统计文字的正则:

importre
#统计中文字数
defcountContent(string):
pattern=re.compile(u'[u1100-uFFFD]+?')
content=pattern.findall(string)
returncontent

查找每一个div,统计每一个div的文字,只保留文字最多的那个div:

#分析页面信息
defanalyzeHtml(html):
#初始化网页
soup=BeautifulSoup(html,"html.parser")
part=soup.select('div')
match=""
forparagraphinpart:
content=countContent(str(paragraph))
iflen(content)>len(match):
match=str(paragraph)
returnmatch

最后的调用几个函数即可:

defmain():
url="http://blog.csdn.net/"
html=getHtmlByRequests(url)
mainContent=analyzeHtml(html)
soup=BeautifulSoup(mainContent,"html.parser")
print(soup.select('div')[0].text)

9. python 如何过滤 HTML标签

基于文本文档(Markdown) 设想好需要的基本需要的表、字段、类型;
使用 Rails Migration 随着功能的开发逐内步创建表;
随着细容节功能的开发、需求,逐步增加字段,删除字段,或者调整字段类型;
第一个 Release 的时候清理 Migrations 合并成一个;
随着后期的改动,逐步增加、修改、删除字段或表。
基本上我的所有项目都是这么搞的,这和项目是否复杂无关。

10. python 去除html标签的几种方法

python去除html标签的几种方法,代码如下:

#!/usr/bin/python
#-*-coding:utf-8-*-
'''
Createdon2015-07-08
@author:Administrator
'''
importre

classFilterTag():
def__init__(self):
pass
deffilterHtmlTag(self,htmlStr):
'''
过滤html中的标签
:paramhtmlStr:html字符串或是网页源码
'''
self.htmlStr=htmlStr
#先过滤CDATA
re_cdata=re.compile('//]*//]]>',re.I)#匹配CDATA
re_script=re.compile('<s*script[^>]*>[^<]*<s*/s*scripts*>',re.I)#Script
re_style=re.compile('<s*style[^>]*>[^<]*<s*/s*styles*>',re.I)#style
re_br=re.compile('')#处理换行
re_h=re.compile(']*>')#HTML标签
re_comment=re.compile('')#HTML注释
s=re_cdata.sub('',htmlStr)#去掉CDATA
s=re_script.sub('',s)#去掉SCRIPT
s=re_style.sub('',s)#去掉style
s=re_br.sub(' ',s)#将br转换为换行
blank_line=re.compile(' +')#去掉多余的空行
s=blank_line.sub(' ',s)
s=re_h.sub('',s)#去掉HTML标签
s=re_comment.sub('',s)#去掉HTML注释
#去掉多余的空行
blank_line=re.compile(' +')
s=blank_line.sub(' ',s)
filterTag=FilterTag()
s=filterTag.replaceCharEntity(s)#替换实体
prints

defreplaceCharEntity(self,htmlStr):
'''
替换html中常用的字符实体
使用正常的字符替换html中特殊的字符实体
可以添加新的字符实体到CHAR_ENTITIES中
CHAR_ENTITIES是一个字典前面是特殊字符实体后面是其对应的正常字符
:paramhtmlStr:
'''
self.htmlStr=htmlStr
CHAR_ENTITIES={'nbsp':'','160':'',
'lt':'<','60':'<',
'gt':'>','62':'>',
'amp':'&','38':'&',
'quot':'"','34':'"',}
re_charEntity=re.compile(r'&#?(?Pw+);')
sz=re_charEntity.search(htmlStr)
whilesz:
entity=sz.group()#entity全称,如>
key=sz.group('name')#去除&;后的字符如(""--->key="nbsp")去除&;后entity,如>为gt
try:
htmlStr=re_charEntity.sub(CHAR_ENTITIES[key],htmlStr,1)
sz=re_charEntity.search(htmlStr)
exceptKeyError:
#以空串代替
htmlStr=re_charEntity.sub('',htmlStr,1)
sz=re_charEntity.search(htmlStr)
returnhtmlStr

defreplace(self,s,re_exp,repl_string):
returnre_exp.sub(repl_string)


defstrip_tags(self,htmlStr):
'''
使用HTMLParser进行html标签过滤
:paramhtmlStr:
'''
self.htmlStr=htmlStr
htmlStr=htmlStr.strip()
htmlStr=htmlStr.strip(" ")
result=[]
parser=HTMLParser()
parser.handle_data=result.append
parser.feed(htmlStr)
parser.close()
return''.join(result)

defstripTagSimple(self,htmlStr):
'''
最简单的过滤html<>标签的方法注意必须是<任意字符>而不能单纯是<>
:paramhtmlStr:
'''
self.htmlStr=htmlStr
#dr=re.compile(r'<[^>]+>',re.S)
dr=re.compile(r']*>',re.S)
htmlStr=re.sub(dr,'',htmlStr)
returnhtmlStr

if__name__=='__main__':
#s=file('Google.html').read()
filters=FilterTag()
printfilters.stripTagSimple("<1>你好")
阅读全文

与python3xpath过滤多余标签相关的资料

热点内容
铁锅除垢小苏打可乐 浏览:761
蒸馏塔的物料衡算可以用kg吗 浏览:959
树脂做的假山能放鱼缸里吗 浏览:333
污水处理用什么材质的管线 浏览:945
大理石滴落除垢剂 浏览:890
g120变频器低速扭矩提升 浏览:577
污水厂提标改造的方法 浏览:224
餐饮污水处理器图 浏览:559
中空纤维与超滤膜有什么区别 浏览:146
污水泵的反水轮怎么能取出来 浏览:642
热水器除垢剂的配方 浏览:531
白云山净化器怎么装 浏览:562
提炼和蒸汽蒸馏提取的步骤 浏览:455
净水器滤芯生锈怎么办 浏览:775
下花园污水处理厂招聘 浏览:273
饮水机水从上面满出来是什么原因 浏览:41
天中泉净水器怎么样 浏览:400
陶氏ro膜被收购了 浏览:699
为什么集成灶的水要用纯净水 浏览:83
丰田雷凌12汽油滤芯怎么更换 浏览:427