Python爬取豆瓣高分电影前250名

  
 <代码>导入请求
  进口pymysql
  导入的时间
  进口再保险
  进口xlwt
  从lxml进口etree
  
  头={“用户代理”:“Mozilla/5.0 (Windows NT 6.1;Win64;AppleWebKit x64)/537.36 (KHTML,像壁虎)Chrome/69.0.3497.92 Safari/537.36”,
  “饼干”:“gr_user_id=c6f58a39 ea25 - 4 f58 b448 - 545070192 c4e; 59 a81cc7d8c04307ba183d331c373ef6_gr_session_id=e8e4b66f - 440 - 4 ae7 a76a fe2dd2b34a26; 59 a81cc7d8c04307ba183d331c373ef6_gr_last_sent_sid_with_cs1=e8e4b66f - 440 - 4 ae7 a76a fe2dd2b34a26; 59 a81cc7d8c04307ba183d331c373ef6_gr_last_sent_cs1=N % 2 fa; a81cc7d8c04307ba183d331c373ef6_gr_session_id_e8e4b66f 59 - 440 - 4 ae7 a76a fe2dd2b34a26=true; grwng_uid=9 ec14ad9 - 5 ac0 - 4 bb1组- 81 c1 - bc60d2685710; abtest_ABTest4SearchDate=b; xzuuid=79426 b52; _uab_collina=154660443606130958890473; TY_SESSION_ID=907 f32df c060 - 49 ca b945 - 98215 cc03475; rule_math=pvzq3r06hi '}
  
  康涅狄格州=pymysql。连接(主机=' localhost '用户=?passwd=momiao5201314, db=doubanmovie,端口=3306,charset=use utf8)
  光标=conn.cursor() #创建光标对象
  
  “‘
  #创建一个工作簿设置编码
  工作簿=xlwt。工作簿(编码=皍tf - 8”)
  #创建一个工作表
  工作表=工作簿。add_sheet(“我的工作表”)
  #定义表头
  头=[“movie_name”,“导演”,“演员、风格”,“国家”,“release_time”,“时间”,“分数”)
  对h范围(len(头)):
  workbook.write (0 h头[h])
  “‘
  
  def get_movie_url (url):
  html=requests.get (url,头=标题)
  选择器=etree.HTML (html.text)
  movie_urls=selector.xpath ('//div [@class="高清"]//@href”)
  在movie_urls movie_url:
  #打印(movie_url)
  get_movie_info (movie_url)
  
  def get_movie_info (url):
  html=requests.get (url,头=标题)
  选择器=etree.HTML (html.text)
  试一试:
  movie_name=selector.xpath ('//* [@ id="内容"]/h2/跨度[1]/text()的)# 1电影名称
  #打印(movie_name)
  导演=selector.xpath ('//* [@ id="信息"]/[1]/跨[2]//text() ') # 2导演
  #打印(主任)
  演员=selector.xpath ('//* [@ id="信息"]/[3]/跨[2]”)[0]# Xpath疑问?
  演员=actors.xpath (string()) # 3演员
  #打印(演员)
  风格=re.findall (' & lt;跨属性=皏:流派”祝辞(. * ?)& lt;/span>”, html.text, re.S) [0] + re.findall (' & lt;跨属性=皏:流派”祝辞(. * ?)& lt;/span>”, html.text, re.S)[1] # 4类型
  #打印(风格)
  国家=re.findall (' & lt;跨类=皃l”在制片国家/地区:& lt;/span> (. * ?) & lt; br/祝辞’,html.text, re.S) # 5制片地区
  #打印(国家)
  release_time=re.findall(“上映日期:& lt;/span>。* ?祝辞(. * ?)& lt;/span>”, html.text, re.S) # 6上映时间
  #打印(release_time)
  时间=re.findall (' & lt;跨类=皃l”在片长:& lt;/span>。* ?祝辞(. * ?)& lt;/span>”, html.text, re.S) # 7片长
  #打印(时间)
  分数=selector.xpath ('//* [@ id=" interest_sectl "]/div [1]/div[2]/强/text()的)# 8评分
  #打印(分数)
  print (str (movie_name))
  # sql='插入doubanmovie(名称、导演、演员、风格、国家release_time,时间,分数,)值(“{}”,“{}”,“{}”,“{}”,“{}”,“{}”,“{}”,“{}”)“.format (movie_name、导演、演员、风格、国家release_time,时间,分数)#多一个逗号
  游标。执行(“插入doubanmovie(名称、导演、演员、风格、国家release_time,时间,分数)值(% s, % s % s, % s, % s, % s, % s, % s)”, (str (movie_name) str(主任),str(演员),str(风格),str(国家),str (release_time) str(时间),str(分数)))
  除了IndexError:
  通过
  
  if __name__==癬_main__”:
  url=['=' https://movie.douban.com/top250?start={},过滤器.format (num) num范围内(0250年25)]
  为在url网址:
  get_movie_url (url)
  time . sleep (2)
  conn.commit()  
  

 Python爬取豆瓣高分电影前250名”> </p><h2 class=Python爬取豆瓣高分电影前250名