关于python爬虫中beautifulsoup4与正则表达式的运用问题!

import urllib.request
import re
from bs4 import BeautifulSoup
def main():
url = "http://bS Z saike.baidu.com/view/284853.htr 9 W e % a sm"
response = urllib.request.urlopen(url)
html = response.read()
soup = BeautifulSH @ Loup(html, "html.parser") # 使用 Python 默认的解析器
for each in soup* ? ! O (.fr h g vind_all(href=re.compile("view")):
print(each.text, "->", ''.join(["http://baike.baidu.com", each["href"]]))
# 上边用 join() 不用 + 直接拼接,是因为 join() 被证明执行效, B u q `率要高很多
if __name__ == "__main__":
main()

输出结果:

恐龙百q C v + l 8 W科 -> http://baike.baidu.com/wikic{ { n ( m 9 B = :ategory/view?categoryName=恐龙大全
多肉百科 -> http://baike.baidu.com/wikicategory/viQ $ $ d P w o x cew?categoryName=多肉B N k N D ~ U植物
锁定 -> http://baike.baidu.comy + N r x C/vi4 ` ; v k ^ ? Jew/10812319.htm

这串代码中

for each in soup.find_all(href=re.compile("view")):

这一句没有看太懂
如果将括号内的 href= 去掉或者将 hrefn } ( 6 y 0 G = ! 换成其他字符的话的话就无法打印出内容,href=在这里是什么意思啊?
没有 href= 的话不也是一个完整的正则表达式

回答

soup.find_all(href=re.compile("view"))
soup.查找所有(href属性里面u i | s U含有view关键字)的结果
有时间看看RE模块的用法