使用 BeautifulSoup 和 Selenium 的抓取问题
Scraping issue using BeautifulSoup and Selenium
我正在开始为自己编写代码,但我被代码行阻塞了。你能给我一些解释吗?
我想从这个 div 标签中抓取信息:
role = experience1_div('span', {'class' : 'mr1 t-bold'}) print(role)
输出:
[<span class="mr1 t-bold"> <span aria-hidden="true"><!-- -->Automation Engineer - Intern<!-- --></span><span class="visually-hidden"><!-- -->Automation Engineer - Intern<!-- --></span> </span>]
如何才能只获得 HTML 文本:“自动化工程师 - 实习生”
我尝试了这个功能 .get_text().strip()
但似乎 span
标签阻止了我的功能....
我不知道 experience1_div
是什么,但要获取所有文本,请使用 role.text
role = experience1_div.find('span', {'class' : 'mr1 t-bold'})
print(role.text)
输出:
Automation Engineer - InternAutomation Engineer - Intern
要从第一个嵌套范围获取文本,请使用
role.span.text
或来自第二个嵌套跨度
role.contents[2].text
所提供信息中的主要问题是您生成了 ResultSet
- 要获取其文本,您必须直接选择元素或对其进行迭代。
role[0].span.get_text(strip=True)
或
for e in role:
print(e.span.get_text(strip=True))
输出:
Automation Engineer - Intern
更好的方法是 select 您的元素更具体(基于您的示例):
experience1_div.select_one('span.mr1.t-bold > span').get_text(strip=True)
这是实现目标的最简单方法。
role = experience1_div.select_one('span.mr1.t-bold >span').get_text(strip=True)
print(role)
我正在开始为自己编写代码,但我被代码行阻塞了。你能给我一些解释吗?
我想从这个 div 标签中抓取信息:
role = experience1_div('span', {'class' : 'mr1 t-bold'}) print(role)
输出:
[<span class="mr1 t-bold"> <span aria-hidden="true"><!-- -->Automation Engineer - Intern<!-- --></span><span class="visually-hidden"><!-- -->Automation Engineer - Intern<!-- --></span> </span>]
如何才能只获得 HTML 文本:“自动化工程师 - 实习生”
我尝试了这个功能 .get_text().strip()
但似乎 span
标签阻止了我的功能....
我不知道 experience1_div
是什么,但要获取所有文本,请使用 role.text
role = experience1_div.find('span', {'class' : 'mr1 t-bold'})
print(role.text)
输出:
Automation Engineer - InternAutomation Engineer - Intern
要从第一个嵌套范围获取文本,请使用
role.span.text
或来自第二个嵌套跨度
role.contents[2].text
所提供信息中的主要问题是您生成了 ResultSet
- 要获取其文本,您必须直接选择元素或对其进行迭代。
role[0].span.get_text(strip=True)
或
for e in role:
print(e.span.get_text(strip=True))
输出:
Automation Engineer - Intern
更好的方法是 select 您的元素更具体(基于您的示例):
experience1_div.select_one('span.mr1.t-bold > span').get_text(strip=True)
这是实现目标的最简单方法。
role = experience1_div.select_one('span.mr1.t-bold >span').get_text(strip=True) print(role)