笔者很废...所以还请看到这篇练习文的大佬嘴下留情 :)
先确认BeautifulSoup4已经安装了,若是还没请:
pip3 install beautifulsoup4
安装完成后我们就可以直接打开编辑器来导入了!
import requestsimport refrom bs4 import BeautifulSoup
这里我们优先导入几个我们会用到的模组: requests, re, bs4
requests:用于请求伺服器回传资料,可用正则表达式筛选所需的资料。
beautifulsoup:方便对特定的目标加以分析、撷取的强大模组。
常用属性和方法:
select和find的语法差异则如下:
example_find = ex.find('div', class_ = 'title')example_select = ex.select('div.title)
现在用requests去get网页资料,建立beautifulsoup物件main后再用python内建的html.parser去解析。
hotpage = requests.get("https://www.ptt.cc/bbs/hotboards.html")main = BeautifulSoup(hotpage.text, 'html.parser')print(main.text) #这里可以print看看已抓取到除标籤外的文字
接着我们寻找并撷取所有board资料,然后用for迴圈一个一个列出来。(以下部分有参考自kevin8701111的虫王养成)
board_find = main.find_all('a', class_='board')# print(board_find)for board in board_select: header_name = board.find('div', class_ = 'board-name') print("看板表头名称:",header_name.text) header_page = board.select('span')[0] print("看板分类文章数:",header_page.text) header_classes = board.find('div', class_ = 'board-class') print("看板分类:",header_classes.text) header_title = board.select('div.board-title')[0] print("看板标题:",header_title.text) header_url = 'https://www.ptt.cc' + board['href'] print("看板网址:"+ header_url)
这边补充一下网页原始码来对照。
下一篇 练习2:用Session和cookie通过18岁同意条款页面