【发布时间】:2020-06-29 04:50:16
【问题描述】:
我想从网页中抓取日期,并且日期的文本(在脚本标记之后)由 JavaScript 注入: 我只想用 Beautifulsoup 来刮它,而不是硒
<div class="row">
<span class="LName"><a target="_blank" href="http://google.com">[me too]</a></span>
<script language="Javascript" type="text/javascript">formatDate('2020,5,23,09,00,00',1)</script>6/23/2020 10:00 Tuesday
</div>
这是用于尝试抓取日期文本的代码:
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0'}
r = requests.get(u, headers=headers)
soup = BeautifulSoup(r.content, 'html.parser')
我试试:
soup.select('div.row > script')[0].get_text()
返回:
"formatDate('2020,5,23,09,00,00',1)"
和:
soup.select('div.row')[0].get_text()
返回:
"\n[me too] formatDate('2020,5,23,09,00,00',1)\n"
当我使用 Chrome 检查标签时,我可以看到脚本标签后面的日期文本
当我执行时:
soup.select('div.row')
它返回没有日期文本的标签
我只想用 Beautifulsoup 刮,而不是硒
【问题讨论】:
-
您需要一个能够理解 javascript 文本的 javascript 引擎。但不幸的是,美丽的汤并没有这样做
标签: python web-scraping beautifulsoup