爬取豆瓣电影top250源码分享
#!/ usr / bin / env python#encoding = utf-8汇入 要求进口 重导入 编解码器从 bs4 导入 BeautifulSoup从 openpyxl 导入 工作簿wb= 工作簿()dest_filename='电影.xlsx'ws1=wb。积极的ws1。title=“电影top250”DOWNLOAD_URL='http://movie.douban.com/to
·
#!/ usr / bin / env python
#encoding = utf-8
汇入 要求
进口 重
导入 编解码器
从 bs4 导入 BeautifulSoup
从 openpyxl 导入 工作簿
wb = 工作簿()
dest_filename = '电影.xlsx'
ws1 = wb。积极的
ws1。title = “电影top250”
DOWNLOAD_URL = 'http://movie.douban.com/top250/'
def download_page(url):
“”“获取网址地址页面内容”“”
标头 = {
'User-Agent':'Mozilla / 5.0(Macintosh; Intel Mac OS X 10_11_2)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 47.0.2526.80 Safari / 537.36'
}
数据 = 请求。get(url,headers = headers)。内容
返回 数据
def get_li(doc):
汤 = BeautifulSoup(doc,'html.parser')
ol = 汤。查找('ol',class_ = 'grid_view')
名称 = [] #名字
star_con = [] #评价人数
分数 = [] #分数
info_list = [] #短评
因为 我 在 ol。find_all('li'):
细节 = i。查找('div',attrs = { 'class':'hd' })
movie_name = 详细信息。找到(
'span',attrs = { 'class':'title' })。get_text() #电影名字
level_star = i。找到(
'span',attrs = { 'class':'rating_num' })。get_text() #评分
星 = 我。查找('div',attrs = { 'class':'star' })
star_num = star。找到(文=重。编译('评价')) #评价
信息 = 我。find('span',attrs = { 'class':'inq' }) #短评
如果 信息: #判断是否有短评
info_list。追加(信息。get_text())
其他:
info_list。追加('无')
得分。追加(level_star)
名字。追加(movie_name)
star_con。追加(star_num)
页 = 汤。找到('span',attrs = { 'class':'next' })。find('a') #获取下一页
如果 页面:
返回 名称,star_con,得分,info_list,DOWNLOAD_URL + 页面[ 'href' ]
返回 名称,star_con,得分,info_list,无
def main():
网址 = DOWNLOAD_URL
名称 = []
star_con = []
分数 = []
信息 = []
而 网址:
doc = download_page(url)
电影,明星,level_num,info_list,url = get_li(doc)
名称 = 名称 + 电影
star_con = star_con + 星级
分数 = 分数 + level_num
信息 = 信息 + 信息列表
为(我,米,直径:,p)在 拉链(名称,star_con,得分,信息):
col_A = 'A%s' %(名称。索引(i)+ 1)
col_B = 'B%s' %(名称。索引(i)+ 1)
col_C = 'C%s' %(名称。索引(i)+ 1)
col_D = 'D%s' %(名称。索引(i)+ 1)
ws1 [ col_A ] = i
ws1 [ col_B ] = m
ws1 [ col_C ] = o
ws1 [ col_D ] = p
wb。保存(filename = dest_filename)
如果 __name__ == ' __main__ ':
主要()
日常分享都是一些纯干货,是我学习很多教程筛选出来合适新手快速入门学Python,掌握一门技能让自己变得更好吧!想学的可以+关注后台call“学习”或评论“Python”无偿分享给你们 但一定要记得粉小可爱我哦!
公众号:学习py最风sao的方式
更多推荐
已为社区贡献1条内容
所有评论(0)