|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import requests
from bs4 import BeautifulSoup
def getHTML(url):
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='
html = getHTML(url)
parasepage(html, lis)
if __name__ == '__main__':
main()
代码在sublime上运行爬到top210报错'gbk' codec can't encode character '\u22ef'
在pycharm上正常运行 |
|