豆瓣电影数据
豆瓣電影數據
利用anaconda的jupyter notebook 編寫
from urllib.request import urlopen from urllib.error import HTTPError from bs4 import BeautifulSoup import re import xlwt import csv import pandas as pd import codecs獲取豆瓣電影的url
正則表達式: pat = ‘“id”:"(.*?)"’
匹配電影標題
正則表達: pat = ‘</span property=“v:itemreviewed”>(.?)<//span>’
pat_yeas = '</span class=“year”>(.?)<//span>’
刪掉span前的一個/,
匹配導演
正則表達式: pat = ‘<a.?rel=“v:directedBy”>(.?)< /a>’
匹配編劇
正則式:pat = ‘<a\shref="/celebrity/\d+/">(.?)< /a>’
匹配主演
正則式: pat = ‘<a.?rel=“v:starring”>(.?)< /a>’
匹配類型
正則式:pat = ‘< span property=“v:genre”>(.*?)< /span>’
匹配制片地區
正則式:pat = ‘< span\sclass=“pl”>制片國家/地區:\s(.?)\s< br/>’
匹配上映時間
正則式: pat = ‘< span property=“v:initialReleaseDate” content=".?">(.?) .*?< /span>’
匹配片長
正則式:pat = ‘< span property=“v:runtime” content=.?>(.?)< /span>’
匹配語言
正則式: pat = ‘< span\sclass=“pl”>語言:< /span>\s(.*?)< br/>’
匹配豆瓣評分
正則式: pat = ‘< strong class=“ll rating_num” property=“v:average”>(.*?)</ strong>’
劇情簡介
#劇情簡介 def get_content(html):pat = '<strong class="ll rating_num" property="v:average">(.*?)</strong>'content = re.compile(pat).findall(html)return content #電影名,時間,評分,導演,編劇,主演,分類,上映地區,上映時間,語言,時長, def output_datas(html):datas=[]title,year = get_title(html=html)score = get_score(html=html)director = get_director(html=html)screenwriter = get_Screenwriter(html=html)tostar = get_Tostar(html=html)movie_type = get_type(html=html)area = get_Producer_area(html=html)#times = get_time(html=html)film_length = get_Film_length(html=html)language = get_language(html=html)datas.extend(title)datas.extend(year)datas.extend(score)datas.append(director)datas.append(screenwriter)datas.append(tostar)datas.append(movie_type)datas.extend(area)datas.extend(language)#datas.append(times)datas.extend(film_length) return datas #輸出.csv def output_csv(datas):with open('data3.csv','a',encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile)writer.writerow(datas)運行
movies_url = get_urlid("%E7%88%B1%E6%83%85") get_field(movies_url)展示圖:
總結
- 上一篇: 面试整理—计算机及网络工程师常见问题
- 下一篇: Java qq登录界面设计