前期准备
网站信息
豆瓣官网TOP250:https://movie.douban.com/top250
-
打开网页,收集信息
-
top250的电影分为10页
-
F12打开控制台(笔记本Fn+F12)
-
获取站点,及浏览器伪装信息,一会代码需要用(下图已经用红框标出):
-
在展开的详细信息中,复制下图的两点存起来备用,其中的url的start值在每次翻页后都会递增25:
– 此时翻到第二页,url中的start值变为25,记住这个点,代码中会用到:
-
伪装信息也要留下来:
代码部分
代码思路
- 涉及到爬取网页会用到requests包
- 需要解析为soup对象,会用到BeautifulSoup包
- 浏览器伪装信息
- 由于该网页不止一页,用循环进行请求
- 将获得的响应文件,解析为soup对象
- 从解析的内容中,获取我需要的信息
代码实现
1、导入两个需要的包(也可以在下面用到时alt+enter导包):
import requests
from bs4 import BeautifulSoup
2、浏览器伪装信息:
headers ={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0'
} #伪装浏览器
3、定义循环,确定每页的url:
- 由于每次翻页url中的start值会增加25,代码处理如下:
for i in range(0,10):
url = 'https://movie.douban.com/top250?start='+str(i * 25)#根据网站控制台信息确定url
4、发送请求,解析响应文档:
r = requests.get(url,headers=headers,timeout=10)#提交申请访问
soup = BeautifulSoup(r.text,'lxml')#第一个参数是要转换的文件,第二个是解释器
5.提取我所需要的部分:
div_list = soup.find_all(name='div',attrs={"class":"hd"})
print(str(i+1),"页的返回状态码",r.status_code)
for each in div_list:
movie =each.a.span.text.strip()
movie_list.append(movie)
5.整体代码:
import requests
from bs4 import BeautifulSoup
def movie_get():
movie_list =[]
headers ={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0'} #伪装浏览器
for i in range(0,10):
url = 'https://movie.douban.com/top250?start='+str(i * 25)#根据网站控制台信息确定url
r = requests.get(url,headers=headers,timeout=10)#提交申请访问
soup = BeautifulSoup(r.text,'lxml')
div_list = soup.find_all(name='div',attrs={"class":"hd"})
print(str(i+1),"页的返回状态码",r.status_code)
for each in div_list:
movie =each.a.span.text.strip()
movie_list.append(movie)
return movie_list
print(movie_get())
‘Snail 需要慢慢的走’