本文章并不是爬取电影来看,而是获取电影信息。
用到的库:
当我打开百度搜索利用Python爬取豆瓣电影信息,随手打开一个爬取TOP250电影的教程。当我跟着以下步骤
import requests import json from bs4 import BeautifulSoup # 构造请求头部 headers = { 'USER-AGENT':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } #网页地址 url = "https://movie.douban.com/top250?start=" # 发送请求,获得响应 response = requests.get(url=url,headers=headers) # 获取网页html html = response.text #解析 soup = BeautifulSoup(html,'lxml') #随便输出一个标签内容 tagData = soup.select('.hd') #输出 print(tagData)结果: 真香!!!就找个页面搞一搞。
当我按上面的代码将url改成https://movie.douban.com/tag/#/,然后也是随便找个标签试试能不能拿到数据。
import requests import json from bs4 import BeautifulSoup # 构造请求头部 headers = { 'USER-AGENT':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } #网页地址 url = "https://movie.douban.com/tag/#/" # 发送请求,获得响应 response = requests.get(url=url,headers=headers) # 获取网页html html = response.text #解析 soup = BeautifulSoup(html,'lxml') #随便输出一个标签内容 tagData = soup.select('.article') #输出 print(html)结果: 回去看看页面的F12。发现没有问题啊,是有数据的,怎么拿不到呢。。。。
回去代码观察爬取下来的html网页发现
数据显示的是这段js代码,看到这里意识到数据可能是加载html页面之后再嵌入进去的。既然看的到电影信息,说明肯定是接收到数据的。打开一下F12查看请求URL URL地址:https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0&year_range=2020,2020 通过postman软件去访问请求地址 可以,直接返回json数据,谢谢你了。都不用BeautifulSoup解析页面
结果 至于请求URL中的参数详解可以看一下这个链接 https://www.cnblogs.com/fangtaoa/p/8366528.html