首页 > 编程知识 正文

电影天堂评分,987电影天堂nba地址

时间:2023-05-06 04:23:49 阅读:278040 作者:187

临近放假,无心看代码,干脆做点趣味的事情,爬虫找几部电影,打发旅途时间。(头一次,为自己编程^_^)

python爬虫,基本参考  网络爬虫实战:爬取并下载《电影天堂》3千多部动作片电影 这个博主的文章,但是碰到乱码,也是按照该博主的blog提示解决了,然后这里自己加了个过滤评分的。

# 我们用到的库#大体来自原博客 https://blog.csdn.net/wenxuhonghe/article/details/84897936import requestsimport bs4import reimport pandas as pddef get_data(url): ''' 功能:访问 url 的网页,获取网页内容并返回 参数: url :目标网页的 url 返回:目标网页的 html 内容 ''' headers = { 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36', } try: r = requests.get(url, headers=headers) r.raise_for_status() #add:canok #下面这个,自动推测网站编码,避免乱码 r.encoding = r.apparent_encoding return r.text except requests.HTTPError as e: print(e) print("HTTPError") except requests.RequestException as e: print(e) except: print("Unknown Error !")def parse_data(html): ''' 功能:提取 html 页面信息中的关键信息,并整合一个数组并返回 参数:html 根据 url 获取到的网页内容 返回:存储有 html 中提取出的关键信息的数组 ''' bsobj = bs4.BeautifulSoup(html,'html.parser') info = [] # 获取电影列表 tbList = bsobj.find_all('table', attrs = {'class': 'tbspan'}) # 对电影列表中的每一部电影单独处理 for item in tbList: movie = [] link = item.b.find_all('a')[1] # 获取电影的名称 name = link["title"] # 获取详情页面的 url url = 'https://www.dy2018.com' + link["href"] try: # 访问电影的详情页面,查找电影下载的磁力链接 temp = bs4.BeautifulSoup(get_data(url),'html.parser') tbody = temp.find_all('tbody') score = 0 #add: canok 添加评分过滤: score_co = temp.find_all('span') for i in score_co: #print(i) if '评分:' in i: #print('找到评分',i) score = float(i.strong.text) break if score < 7.0: print('score too low,skip',score,name) continue else: # 将数据存放到电影信息列表里 movie.append(name) movie.append(url) #print(name,url) # 下载链接有多个(也可能没有),这里将所有链接都放进来 for i in tbody: download = i.a.text movie.append(download) #print(download) #print(movie) # 将此电影的信息加入到电影列表中 info.append(movie) except Exception as e: print(e) return infodef save_data(data): ''' 功能:将 data 中的信息输出到文件中/或数据库中。 参数:data 将要保存的数据 ''' filename = './电影天堂.csv' dataframe = pd.DataFrame(data) dataframe.to_csv(filename,encoding='utf_8_sig', mode='a', index=False, sep=',', header=False)def main(): # 循环爬取多页数据 for page in range(1, 2): print('正在爬取:第' + str(page) + '页......') # 根据之前分析的 URL 的组成结构,构造新的 url if page == 1: index = 'index' else: index = 'index_' + str(page) url = 'https://www.dy2018.com/2/'+ index +'.html' # 依次调用网络请求函数,网页解析函数,数据存储函数,爬取并保存该页数据 html = get_data(url) movies = parse_data(html) if movies: save_data(movies) #print(movies) break print('第' + str(page) + '页完成!')if __name__ == '__main__': print('爬虫启动成功!') main() print('爬虫执行完毕!')

评分的标签:

上面只抓了3页,过滤小于7.0评分的资源。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。