导航:首页 > 净水问答 > 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过滤多余标签相关的资料

热点内容
小红门污水处理厂人员 浏览:331
密封式污水提升泵 浏览:251
净水机什么牌的比较好 浏览:303
大孔阳离子树脂吸附原理 浏览:11
查环保排放污水 浏览:338
万州生活废水处理 浏览:46
酒精的蒸馏和沸点测定 浏览:465
l3汽油过滤 浏览:433
陶瓷滤芯怎么去水垢 浏览:746
污水管道流量探头 浏览:943
树脂多长时间就失效了 浏览:424
陶氏净水器哪个好 浏览:816
卡车饮水机没有电怎么回事 浏览:971
淀粉废水泡沫如何处理 浏览:336
友人食品净化器怎么样 浏览:495
蒸馏白酒分为 浏览:767
树脂瓦和墙面防水 浏览:244
树脂美牙对牙齿有伤害吗 浏览:696
r0膜反渗透滤芯的清洗 浏览:254
h8ro膜滤芯 浏览:987