Python3.6爬虫爬取豆瓣电影Top250信息
2018-03-13 23:00
1136 查看
此爬虫程序基于requests-BeautifulSoup技术路线,对豆瓣电影Top250的电影进行信息的爬取,整个程序解析点击打开链接,查看此网页源代码,逐一匹配电影名,评价人数,分数,链接,一句话影评并输出。
获取网页Html链接:def getHTML(url):#获取链接Html
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ''
打印爬取的所有信息:def print_info(lis):
count = 0
for movie in lis:
count += 1
flist = 'Top{}\n电影名:{}\n评价人数:{}\n分数:{}\n链接:{}\n一句话影评:{}\n'
print(flist.format(count, movie[0], movie[1], movie[2], movie[3], movie[4]))解析Html页面并保存下来:parasepage(html, lis):
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', class_ = 'info')
for info in movies:
name_info = info.find('span', class_ = 'title').string #取影片的名字
comment = info.find('span', class_ = "rating_num") #标记此标签
score_info = comment.string #取影片的评分
people_info = comment.find_next_sibling().find_next_sibling().string #平行遍历取出下一标签的内容(人数)
link_info = info.find('a').get('href') #获取影片链接
try:
review_info = info.find('span', class_ = 'inq').string #获取一句话影评
except:
review_info = '暂无信息'
lis.append([name_info, people_info, score_info, link_info, review_info])主函数:main():
depth = 11
lis = []
start_url = 'https://movie.douban.com/top250?start='
for i in range(depth):
url = start_url + str(i * 25) + '&filter=' #i*25表示翻页操作
html = getHTML(url)
parasepage(html, lis)以下是完整代码:import requests
from bs4 import BeautifulSoup
def getHTML(url):#获取链接Html
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ''
def print_info(lis):
count = 0
for movie in lis:
count += 1
flist = 'Top{}\n电影名:{}\n评价人数:{}\n分数:{}\n链接:{}\n一句话影评:{}\n'
print(flist.format(count, movie[0], movie[1], movie[2], movie[3], movie[4]))
def parasepage(html, lis):
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', class_ = 'info')
for info in movies:
name_info = info.find('span', class_ = 'title').string #取影片的名字
comment = info.find('span', class_ = "rating_num") #标记此标签
score_info = comment.string #取影片的评分
people_info = comment.find_next_sibling().find_next_sibling().string #平行遍历取出下一标签的内容(人数)
link_info = info.find('a').get('href') #获取影片链接
try:
review_info = info.find('span', class_ = 'inq').string #获取一句话影评
except:
review_info = '暂无信息'
lis.append([name_info, people_info, score_info, link_info, review_info])
print_info(lis)
def main():
depth = 11
lis = []
start_url = 'https://movie.douban.com/top250?start='
for i in range(depth):
url = start_url + str(i * 25) + '&filter=' #i*25表示翻页操作
html = getHTML(url)
parasepage(html, lis)
if __name__ == '__main__':
main()
获取网页Html链接:def getHTML(url):#获取链接Html
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ''
打印爬取的所有信息:def print_info(lis):
count = 0
for movie in lis:
count += 1
flist = 'Top{}\n电影名:{}\n评价人数:{}\n分数:{}\n链接:{}\n一句话影评:{}\n'
print(flist.format(count, movie[0], movie[1], movie[2], movie[3], movie[4]))解析Html页面并保存下来:parasepage(html, lis):
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', class_ = 'info')
for info in movies:
name_info = info.find('span', class_ = 'title').string #取影片的名字
comment = info.find('span', class_ = "rating_num") #标记此标签
score_info = comment.string #取影片的评分
people_info = comment.find_next_sibling().find_next_sibling().string #平行遍历取出下一标签的内容(人数)
link_info = info.find('a').get('href') #获取影片链接
try:
review_info = info.find('span', class_ = 'inq').string #获取一句话影评
except:
review_info = '暂无信息'
lis.append([name_info, people_info, score_info, link_info, review_info])主函数:main():
depth = 11
lis = []
start_url = 'https://movie.douban.com/top250?start='
for i in range(depth):
url = start_url + str(i * 25) + '&filter=' #i*25表示翻页操作
html = getHTML(url)
parasepage(html, lis)以下是完整代码:import requests
from bs4 import BeautifulSoup
def getHTML(url):#获取链接Html
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ''
def print_info(lis):
count = 0
for movie in lis:
count += 1
flist = 'Top{}\n电影名:{}\n评价人数:{}\n分数:{}\n链接:{}\n一句话影评:{}\n'
print(flist.format(count, movie[0], movie[1], movie[2], movie[3], movie[4]))
def parasepage(html, lis):
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', class_ = 'info')
for info in movies:
name_info = info.find('span', class_ = 'title').string #取影片的名字
comment = info.find('span', class_ = "rating_num") #标记此标签
score_info = comment.string #取影片的评分
people_info = comment.find_next_sibling().find_next_sibling().string #平行遍历取出下一标签的内容(人数)
link_info = info.find('a').get('href') #获取影片链接
try:
review_info = info.find('span', class_ = 'inq').string #获取一句话影评
except:
review_info = '暂无信息'
lis.append([name_info, people_info, score_info, link_info, review_info])
print_info(lis)
def main():
depth = 11
lis = []
start_url = 'https://movie.douban.com/top250?start='
for i in range(depth):
url = start_url + str(i * 25) + '&filter=' #i*25表示翻页操作
html = getHTML(url)
parasepage(html, lis)
if __name__ == '__main__':
main()
相关文章推荐
- python爬虫的初体验,爬取豆瓣Top250电影的图片
- [python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息
- 爬虫入门:python+pycharm,豆瓣电影信息,短评,分页爬取,mysql数据库连接
- 一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
- Python爬虫入门2 | 爬取豆瓣电影信息
- Python爬虫学习---------根据分类爬取豆瓣电影的电影信息
- python爬虫|爬取豆瓣电影TOP250并写入txt中
- 用Python爬虫爬取豆瓣电影、读书Top250并排序
- 爬虫实战【11】Python获取豆瓣热门电影信息
- 萌新的Python学习日记 - 爬虫无影 - 爬取豆瓣电影top250并入库:豆瓣电影top250
- python 爬虫学习三(Scrapy 实战,豆瓣爬取电影信息)
- Python网络爬虫学习案例——爬取豆瓣电影top250信息
- Python3爬虫豆瓣电影TOP250将电影名写入到EXCEL
- Python爬虫之多线程下载豆瓣Top250电影图片
- 【Python爬虫第二弹】基于爬虫爬取豆瓣书籍的书籍信息查询
- Python 3.6 爬虫爬取豆瓣《孤芳不自赏》短评
- python爬取豆瓣电影信息
- 1.【python爬虫学习笔记】爬取豆瓣电影top250
- python3爬虫爬取豆瓣电影并保存到sql serve数据库
- 豆瓣电影Top250基本信息抓取