从以下代码中,我想定位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>
预先感谢杰克逊
您可以声明一个用于匹配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] 删除。
我来说两句