Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从响应文本中筛选行_Python - Fatal编程技术网

Python 从响应文本中筛选行

Python 从响应文本中筛选行,python,Python,我想从myText中过滤掉部分文本。假设我的文本是 > r=request.get(myHttp) > myText=r.text > >一号线 Wanter二号线 非中心线 请选这条线 与donet Pick不匹配 再选一行 > >我最喜欢的颜色是蓝红色 > > 我想过滤掉一些字符串 “之间的所有行都匹配”和“”之间的行 “”后面的两行 将有多行可供选择 预期产出为 一号线 Wanter二号线 请选这条线 还有一行要选 您可以尝试使用lxml和xpath > &

我想从myText中过滤掉部分文本。假设我的文本是

> r=request.get(myHttp)
> myText=r.text
>
>一号线
Wanter二号线
非中心线
请选这条线

与donet Pick不匹配

再选一行

> >我最喜欢的颜色是蓝红色

> >
我想过滤掉一些字符串

之间的所有行都匹配
”和“

”之间的行

”后面的两行

将有多行可供选择

预期产出为

  • 一号线
  • Wanter二号线
  • 请选这条线
  • 还有一行要选

您可以尝试使用lxml和xpath

> <html> <body>
> <h1>WantedLIne number one
      Wanter Line Number TWO
      UnWanter Line </h1>
<p> Match Pick This Line Please.</p>
 <p> Does Not Match donet Pick </p>
 <p>Match One More Line to Pick</p>
> 
> <p>My favorite color is <del>blue</del> red.</p>
> 
> </body> </html>
从lxml导入etree#您可能需要pip安装lxml
html=“”
tree=etree.HTML(HTML)
p_nodes_target=tree.xpath(//p[以(normalize space(text()),'Match')]开头)
第一个\u p\u值=“如果p\u节点\u目标为None或len(p\u节点\u目标)==0,否则p\u节点\u目标[0]。文本
第一个_p_值的值应为-匹配请选择此行。然后可以用空文本替换“匹配”

事实上,对于您提供的HTML代码,正则表达式也可以工作,但对于更复杂的HTML页面,XPath更好


学习XPath:

请从下一步重复。这不是一个可以发布问题并返回工作代码的站点。谢谢,这需要在“”之后的两行代码吗?有时文本不是HTML,如果响应是LogFiles或JSON,希望etree.HTML会有所帮助
from lxml import etree # you may need to pip install lxml

html  = "<the content of your HTML>"
tree = etree.HTML(html)
p_nodes_target = tree.xpath("//p[starts-with(normalize-space(text()),'Match')]")
first_p_value = "" if p_node_target is None or len(p_node_target) == 0 else p_nodes_target[0].text