如何抓取网页数据(BeautifulSoup、本文模块的使用方法及注意点)

优采云 发布时间: 2022-02-02 16:06

  如何抓取网页数据(BeautifulSoup、本文模块的使用方法及注意点)

  前言

  学习,最重要的是理解它并使用它,所谓,学以致用,这篇文章,我们以后会介绍,BeautifulSoup模块的使用,以及注意点,帮助您快速了解和学习 BeautifulSoup 模块。有兴趣了解爬虫的朋友,快点学习吧。

  第一步:了解需求

  在开始写作之前,我们需要知道我们将要做什么?做爬行动物。

  抢什么?抓取 网站 图像。

  去哪里抢?图片之家

  可以用这个网站练手,页面比较简单。

  第 2 步:分析 网站 因素

  我们知道需要抓取哪些网站数据,那么我们来分析一下网站是如何提供数据的。

  根据分析,所有页面看起来都一样,所以我们选择一张照片给大家演示一下。

  1、获取列表的标题,以及链接

  进一步研究页面数据,每个页面下面都有一个列表,然后通过列表的标题进入下一层。然后在这个页面上我们需要获取列表标题。

  2、获取图片列表,以及链接、翻页操作

  继续分析,点击链接进入,发现已经有图片列表了,还可以翻页。

  3、获取图片详情,所有图片

  然后点击继续研究,发现还有更多图片。

  分析完毕,我们来写代码。

  流程图如下:

  第三步:编写代码实现需求1、导入模块

  导入我们需要使用的所有模块。

  import os

import re

from bs4 import BeautifulSoup

import requests

import time

  2、获取列表的标题以及链接

  def tupianzj():

"""获取标题,链接"""

response = requests.get(url="https://www.tupianzj.com/sheying/",headers=headers)

response.encoding="gbk"

Soup = BeautifulSoup(response.text, "html.parser")

list_title=Soup.find_all("h3",{"class":"list_title"})

list=[]

for i in list_title:

list.append({'name':i.get_text(),'url':i.find("a").get("href")})

return list

  3、获取类别列表标题、链接和翻页。

  def tu_list(url,page):

"""获取类比列表"""

response = requests.get(url,headers=headers)

response.encoding="gbk"

Soup = BeautifulSoup(response.text, "html.parser")

list_title=Soup.find_all("ul",{"class":"list_con_box_ul"})[0].find_all("li")

for i in list_title:

for j in i.find_all("a"):

try:

j.find("img").get("src")

name=j.get("title")#列表列表图片名称

url1="https://www.tupianzj.com"+j.get("href")[0:-5]#类比列表图片详情链接

text=Soup.find_all("div",{"class":"pages"})[0].find_all("a")[1].get("href")#下一页

page1=Soup.find_all("span",{"class":"pageinfo"})[0].find("strong").get_text()#获取总页数

url2=url+text[0:-6]+page+".html"

print(url2,page1)

try:

os.mkdir(name)#创建文件

except:

pass

tu_detail(name,url1,2)

if page==1:

for z in range(2,int(page1))

tu_list(url2,page)

except:

pass

  4、获取详细图片并保存

<p>def tu_detail(path,url,page):

"""获取详情"""

if page

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线