为什么在虚拟机中vscode不能编译文件,没有终端出现,重新下载也没用,还是不能编译
你要安装python解释器,还要跟vscode绑定
去哪里找电影的相关的免费的接口呢?说实话光这一步就花费了两天的时间,而且结果还是没找到,很气人,既然找不到免费好用的接口,那就只能自己动手了,获取电影信息的话,我首先找的是猫眼电影,但是发现猫眼电影分类很多,确实很专业,但是页面也比较复杂,于是又找到了淘票票,页面如下。
看到淘票票的页面,嘴角微微上扬,果断F12查看下页面元素。
多么直白,多么简单,还不用分页,正在热映和即将上映也都是分类好并且在一个页面中。这对我这个python小菜鸟来说,简直是舒服极了。写代码过程就不说了,直接上源码。
Python淘票票正在热映和即将上映的电影信息。
import io
import sys
from bs4 import BeautifulSoup
import requests
import json
#伪装浏览器请求
headers={
'User-Agent':'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;',
'Referer':'https://www.taopiaopiao.com/showList.htm?spm=a1z21.3046609.header.4.1d69112aGq86y0&n_s=new'
}
#获取网页信息
def getPage(url):
try:
response=requests.get(url)
if response.status_code==200: #http状态码,200表示请求成功
return response.text
else:
return None
except Exception:
return None
#解析html标签内容
def getInfo(html):
soup=BeautifulSoup(html,'html.parser') #创建bs对象 解析器为html.parser
items=soup.select('div .movie-card-wrap') #查询所有的电影卡片里的信息
i=1
result = [] #创建一个空的数组
for item in items:
name=item.find(name='div',class_='movie-card-name').get_text().strip() #这个是找你要内容的标签和它的类
if '\n' in name:
name = name[:name.index('\n')] #若包含评分,则去掉评分,因为有些电影没有评分
obj={}
obj['movie_name'] = name
poster = item.find(name='img').get("src") #获取海报图片地址
obj['poster'] = poster
info=item.find(name='div',class_='movie-card-list').get_text().strip() #这里包含 主演 类型 时长等信息
infoArr = info.split('\n')
for index in range(len(infoArr)):
obj[index] = infoArr[index]
#获取的包括正在热映以及即将上映
soon = item.find(name='a',class_='movie-card-soon')
if(soon==None): #正在热映
obj["bool_showed"] = True
else: #即将上映
obj["bool_showed"] = False
result.append(obj) #向集合中添加元素
i=i+1
return result
sys.stdout = io.TextIOWrapper(sys.stdout.detach(),encoding='utf-8')
url='https://www.taopiaopiao.com/showList.htm?spm=a1z21.3046609.header.4.20c5112aFDxxzq&n_s=new'
html=getPage(url)
data=getInfo(html)
print(json.dumps(data,ensure_ascii=False)) #转成json
接着可以打印下结果
这里是已经转成json格式的数据,OK到目前,问题已经解决了一个,还差一个问题解决了就可以正式开始写VSCode插件了。