在Python中使用selenium
进行抓取并使用re
进行解析
从字符串
<div type="copy3" class="sc-bxivhb dHqnfT">756 W Peachtree St NW Atlanta GA 30308</div>
我想回来
756 W Peachtree St NW Atlanta GA 30308
此正则表达式
("copy3").*?(?=</div>)
还给我
"copy3" class="sc-bxivhb dHqnfT">756 W Peachtree St NW Atlanta GA 30308
但是我想排除>
之前756
之前的所有内容
我如何包括这个?
答案 0 :(得分:2)
用硒刮擦,用硒得到...
my_element = driver.find_element_by_css_selector('div[type="copy3"]')
address = my_element.text
答案 1 :(得分:1)
匹配>
,然后捕获组中后面的非<
,并提取该组:
type="copy3"[^>]+>([^<]+)
https://regex101.com/r/BX2tVj/1
如果您只想匹配 第一个<
之后的内容,则必须使用lookbehind(仅当您确切知道{{1 }}属性可能包含):
class=""
https://regex101.com/r/BX2tVj/2
或者改为使用正则表达式模块,因此可以使用(?<=type="copy3" class="sc-bxivhb dHqnfT">)[^<]+
:
\K
https://regex101.com/r/BX2tVj/3
type="copy3"[^>]+>\K[^<]+