2022年 11月 5日

怎么用python爬取整个网站_5分钟学会Python爬取整个网站

本图文配套视频演示

爬取网站的步骤:

设定爬取目标

目标网站:我自己的博客,疯狂的蚂蚁 http://www.crazyant.net

目标数据:所有博客文章的 – 链接、标题、标签

2. 分析目标网站

爬取页面

http://www.crazyant.net/page/1 ~ http://www.crazyant.net/page/24

待爬取数据:HTML元素中的h2 class=entry-title下的超链接的标题和链接,标签列表

3. 批量下载HTML

使用requests库实现下载

官网:https://2.python-requests.org//zh_CN/latest/user/quickstart.html

4. 实现HTML解析,得到目标数据

使用BeautifulSoup库解析

官网:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

5. 将结果数据存储

可以使用json.dumps把这个数据序列化存储

也可以将数据存入MySQL

importrequests

frombs4importBeautifulSoup

importpprint

importjson

1、下载所有的页面的HTML

defdownload_all_htmls():

“””

下载所有列表页面的HTML,用于后续的分析

“””

htmls=[]

foridxinrange(24):

url=f”http://www.crazyant.net/page/{idx+1}”

print(“craw html:”,url)

r=requests.get(url)

ifr.status_code!=200:

raiseException(“error”)

htmls.append(r.text)

returnhtmls

# 执行爬取

htmls=download_all_htmls()

craw html:http://www.crazyant.net/page/1

craw html:http://www.crazyant.net/page/2

craw html:http://www.crazyant.net/page/3

craw html:http://www.crazyant.net/page/4

craw html:http://www.crazyant.net/page/5

craw html:http://www.crazyant.net/page/6

— 省略很多行

craw html:http://www.crazyant.net/page/21

craw html:http://www.crazyant.net/page/22

craw html:http://www.crazyant.net/page/23

craw html:http://www.crazyant.net/page/24

htmls[0]

疯狂的蚂蚁 – 视频公众号:蚂蚁学Python