【Python之简单网络爬虫】BeautifulSoup——按节点的名字、属性和文字进行搜索(以及正则表达式的使用)

使用BeautifulSoup的find_all和find功能对节点进行搜索

  1. 使用find_all和find进行搜索时,可以传入目标节点的多个参数值(目标节点的名字、属性和文字内容)对节点进行精确搜索,如下:
    【Python之简单网络爬虫】BeautifulSoup——按节点的名字、属性和文字进行搜索(以及正则表达式的使用)
    其中,当目标节点有多个属性时,比如:
    【Python之简单网络爬虫】BeautifulSoup——按节点的名字、属性和文字进行搜索(以及正则表达式的使用)
    那么,在使用find_all和find时,属性值前要加href=或class_来区分是谁的属性值,如:
a_node = soup.find('a',class_='article_link',string='Python')
print a_node.name, a_node.get_text()
  1. 使用find_all和find时,括号内的名字、属性和文字,都可以加入正则表达式来进行模糊匹配搜索。
    举例,href的属性值加入正则表达式,表达式内容为“ill”,那么,find就能搜索到带“ill”字符的那个节点,如下:
    【Python之简单网络爬虫】BeautifulSoup——按节点的名字、属性和文字进行搜索(以及正则表达式的使用)
    注意:
  2. 使用re.compile()正则表达式,文件前面要加入import re模块。
  3. “ill”前面加了r,目的是为了防止反斜线\转义。