Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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_Python 3.x_Web Crawler - Fatal编程技术网

Python 我怎么刮这个标签?

Python 我怎么刮这个标签?,python,python-3.x,web-crawler,Python,Python 3.x,Web Crawler,但是有更多的标签需要清理,而且在“高编辑”之后,标签的编号也不同 我在数字中找不到任何规则 有人能帮我吗?属性是id而不是class,您已经给出了在find\u all方法中查找的标记。您可以使用regex查找具有特定模式的所有元素 find_all({"class":"hide-editing-3453658"} [61]中的:导入re 在[62]:a=“”中,1/2和2/1是倒数。 …:1/4和2/1是倒数。 …:1/5和2/1是倒数。 ...: "

但是有更多的标签需要清理,而且在“高编辑”之后,标签的编号也不同

我在数字中找不到任何规则


有人能帮我吗?

属性是
id
而不是
class
,您已经给出了在
find\u all
方法中查找的标记。您可以使用
regex
查找具有特定模式的所有元素

find_all({"class":"hide-editing-3453658"}
[61]中的
:导入re
在[62]:a=“”中,1/2和2/1是倒数。
…:1/4和2/1是倒数。
…:1/5和2/1是倒数。
...: """
在[63]中:soup=BeautifulSoup(一个“html.parser”)
在[64]中:all_divs=dates=soup.findAll(“div”,“id”:re.compile('hide-editing.*'))
In[65]:所有的div
出[65]:
[1/2和2/1是倒数。,
1/4和2/1为倒数。,
1/5和2/1是互惠的。]
在[66]中:[i.text.strip()表示所有分区中的i]
出[66]:
[“1/2和2/1是相互的。”,
“1/4和2/1是倒数。”,
“1/5和2/1是互惠的。”]

也许您可以尝试使用正则表达式

In [61]: import re
In [62]: a = """  <div id="hide-editing-34536258">1/2 and 2/1 are reciprocals.</div>
    ...:    <div id="hide-editing-345258">1/4 and 2/1 are reciprocals.</div>
    ...:   <div id="hide-editing-346258">1/5 and 2/1 are reciprocals.</div>
    ...: """

In [63]: soup = BeautifulSoup(a, "html.parser")

In [64]: all_divs = dates = soup.findAll("div", {"id" : re.compile('hide-editing.*')})

In [65]: all_divs
Out[65]:
[<div id="hide-editing-34536258">1/2 and 2/1 are reciprocals.</div>,
 <div id="hide-editing-345258">1/4 and 2/1 are reciprocals.</div>,
 <div id="hide-editing-346258">1/5 and 2/1 are reciprocals.</div>]

In [66]: [i.text.strip() for i in all_divs]
Out[66]:
['1/2 and 2/1 are reciprocals.',
 '1/4 and 2/1 are reciprocals.',
 '1/5 and 2/1 are reciprocals.']
重新导入
text='1/2和2/1是倒数。'

parsedText=re.findall('>([^谢谢。我尝试了你的代码,但它说“name're”没有定义“我该怎么做?我的版本是3.8,多亏了你!我怎么才能知道我卡住时需要什么功能?这取决于html标记的属性。你可以使用
查找
findAll
查找所有
有没有办法排除一些标记某些模式?当我使用find_all时
In [61]: import re
In [62]: a = """  <div id="hide-editing-34536258">1/2 and 2/1 are reciprocals.</div>
    ...:    <div id="hide-editing-345258">1/4 and 2/1 are reciprocals.</div>
    ...:   <div id="hide-editing-346258">1/5 and 2/1 are reciprocals.</div>
    ...: """

In [63]: soup = BeautifulSoup(a, "html.parser")

In [64]: all_divs = dates = soup.findAll("div", {"id" : re.compile('hide-editing.*')})

In [65]: all_divs
Out[65]:
[<div id="hide-editing-34536258">1/2 and 2/1 are reciprocals.</div>,
 <div id="hide-editing-345258">1/4 and 2/1 are reciprocals.</div>,
 <div id="hide-editing-346258">1/5 and 2/1 are reciprocals.</div>]

In [66]: [i.text.strip() for i in all_divs]
Out[66]:
['1/2 and 2/1 are reciprocals.',
 '1/4 and 2/1 are reciprocals.',
 '1/5 and 2/1 are reciprocals.']
import re

text = '<div id="hide-editing-34536258">1/2 and 2/1 are reciprocals.</div>'
parsedText=re.findall('>([^<]+)', text)

print(parsedText[0])