python编程

抓取页面元素--python篇

2018-06-12  本文已影响0人  sandy测试路

目标:抓取该页面的Followers数量

获取Followers数量

所需包:

BeautifulSoup介绍

1. 获取操作tag

  1. soup.find_all(name=None, attrs={}, recursive=True, text=None, limit=None, **kwargs),返回符合条件的所有标签,查找不到则返回[],可以传递标签名,标签属性,关键字参数,函数,True等
  2. soup.find(name=None, attrs={}, recursive=True, text=None, **kwargs),返回第一个符合条件的标签,查找不到则返回None
  3. soup.select(selector, _candidate_generator=None, limit=None),根据css选择器返回所有符合条件的标签
  4. soup.select_one(selector),返回符合css选择器的第一个标签

2. 操作tag

3. 实践

from bs4 import BeautifulSoup
import requests

res = requests.get('https://gitee.com/maxiaoqian')
# 如果不指定parser,会有警告,使用默认的html.parser,不同的系统解析可能会有差异
soup = BeautifulSoup(res.text, 'html.parser')

# 获取操作tag, <class 'bs4.element.Tag'>
# 返回:
'''
  <div class="follow-num" id="followers-number">
  42
  </div>
'''
tag = soup.find('div', attrs={'id': 'followers-number'})              # 查找树
# tag = soup.find_all('div', attrs={'id': 'followers-number'})[0]
# tag = soup.select_one('div#followers-number')                   # css selector方式
# tag = soup.select('div#followers-number')[0]

# 返回tag的内容: tag.text 或者 tag.get_text()
print(tag.get_text().strip())    # 移除内容字符串中前后的空格,返回: '42'
上一篇下一篇

猜你喜欢

热点阅读