例子是爬取 豆瓣打分排名前250的电影(https://movie.douban.com/top250)
我自己是一个新手,我说说我的做法,供新手参考:
1、首先打开网页,对要爬去的内容进行分析。主要是分析html的结构,你要获取的内容在那个Tab下,他有没特殊的规则。
2、一般的爬去都要获取下一页,要确定下一页的方式。我们通过分析发现 “https://movie.douban.com/top250 ”,我们发现,每一页都有后缀,https://movie.douban.com/top250?start=175&filter=
3、开始着手写代码
import requests from bs4 import BeautifulSoup import re next = True #其实这个next是可以定义为任意值,只有不等于 None,只要为了下面的while循环 url = ‘https://movie.douban.com/top250‘ #初始的url while next != None : page = requests.get(url).content #初始url是上面定义的,每一次循环会给url重新设置值 ,在倒数第一行 soup = BeautifulSoup(page) #用 BeautifulSoup 获取格式化的数据 hd = soup.find_all(‘div‘,‘hd‘) # 我们发现span在(‘div‘,‘hd‘)下。 for i in hd: name = i.find(‘span‘,‘title‘).getText() #利用循环获取 电影名。这里需要说明:为什么在(‘div‘,‘hd‘)下获取(‘span‘,‘title‘)而不是直接取。在分析页面数据的时候发现(‘span‘,‘title‘)很多不是我们想要获取得数据。 print(name) #打印出电影名 next = soup.find(‘span‘,‘next‘).find(‘a‘)[‘href‘] #下一页的后缀 if next != None: #如果下一页的href是存在的,那么重新定义url url = ‘https://movie.douban.com/top250‘+next
运行代码的时候,需要安装re/BeautifulSoup4/requests
原文:https://www.cnblogs.com/zhangrx1987/p/9761070.html