使用Python从代码块中提取href ID

杰克逊·布朗肯尼

从以下代码中,我想定位href并在链接的末尾收集ID号,并将该号设置为名为“ VARIABLE”的变量(在此代码块中,该号将为“ 2019786”)。我已经使用请求来收集程序中的页面,并且还导入了BeautifulSoup4。另外,此代码块可能会在页面之间更改,从而更改了href ID号,因此我在收集该数字时就在考虑使用类似以下内容:

/d2l/lp/ouHome/home.d2l?ou=%

<a class="d2l-link d2l-outline d2l-left" href="/d2l/lp/ouHome/home.d2l?ou=2019786" title="Enter CHEM-1315-018 - Lab-CHEM 1315-001">CHEM-1315-018 - Lab-CHEM 1315-001</a>

预先感谢杰克逊

ec

您可以声明一个用于匹配href属性值的模式

pattern = re.compile(r'^/d2l/lp/ouHome/home\.d2l\?ou=(\d+)')

(如果url本身也是一个变量,请将您的正则表达式更改为just ou=(\d+)

并在find()以后使用它来提取ou值:

import re
from bs4 import BeautifulSoup

data = '<a class="d2l-link d2l-outline d2l-left" href="/d2l/lp/ouHome/home.d2l?ou=2019786" title="Enter CHEM-1315-018 - Lab-CHEM 1315-001">CHEM-1315-018 - Lab-CHEM 1315-001</a>'

soup = BeautifulSoup(data)

pattern = re.compile(r'^/d2l/lp/ouHome/home\.d2l\?ou=(\d+)')
link = soup.find('a', class_='d2l-link', href=pattern)

print pattern.search(link['href']).group(1)

印刷:

2019786

(\d+)这是一个匹配一个或多个数字捕获组

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章