Python爬取豆瓣影评

原创 2018年04月17日 12:38:51
import urllib.request
import requests
from lxml import etree
from pyquery import PyQuery as pq
import json

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'}
for i in (0,20,40,60,80):
    # 注意要把整数i强转为字符串
    url = "https://movie.douban.com/review/best/?start="+str(i)
    html = urllib.request.urlopen(url).read().decode('utf-8')
    # print(html)

    aaa = []
    s = etree.HTML(html)

    for i in range(1,11):
        # 要使用i作为id传入XPath语句,注意字符串的书写
        id = s.xpath('//*[@id="content"]/div/div[1]/div[1]/div['+str(i)+']/@data-cid')[0]
        name = s.xpath("//*[@id="+id+"]/header/a[2]//text()")[0]
        date = s.xpath("//*[@id="+id+"]/header/span[2]/text()")[0]
        movie_name = s.xpath("//*[@id="+id+"]/div[1]/h2/a/text()")[0]
        reivew_url = "https://movie.douban.com/j/review/"+id+"/full"
        response = requests.get(reivew_url,headers=headers)
        if response.status_code == 200:
            re_json = response.json()
            if re_json:
                html = re_json.get('html')
                print("id:%s,name:%s,movie_name:%s"%(id,name,movie_name))
                reivew = pq(html).text()

        info = {}
        info['id'] = id
        info['name'] = name
        info['date'] = date
        info['review'] = reivew
        aaa.append(info)

# 保存为json格式,注意encoding="utf-8",否则编码会出现错误
with open('F:/Python/douban_review.json','w',encoding="utf-8") as f:
    json.dump(aaa, f, ensure_ascii=False)


使用python爬取《长城》豆瓣影评

声明:这里参考了这篇博客的代码爬取豆瓣影评时,不能使用最简单粗暴的爬虫策略,因为豆瓣服务器 是有反爬虫机制的。简单的粗暴的方式只能爬取四页就会被禁掉。所以这里必须要使用表头,伪装成使用浏览器进行访问...
  • chenpe32cp
  • chenpe32cp
  • 2017-01-07 23:16:05
  • 1355

(8)Python爬虫——爬取豆瓣影评数据

利用python爬取豆瓣最受欢迎的影评50条的相关信息,包括标题,作者,影片名,影片详情链接,推荐级,回应数,影评链接,影评,有用数这9项内容,然后将爬取的信息写入Excel表中。具体代码如下:#!/...
  • Fighting_No1
  • Fighting_No1
  • 2016-03-18 19:30:31
  • 9627

使用requests爬取豆瓣《长城》影评

上一篇文章介绍了使用urllib包爬取《长城》豆瓣影评数据,但是无法爬取所有的数据,只能爬到几百条数据就会被服务器禁止访问。也不知道是什么原因。这里要注意,我是用python3中的urllib.req...
  • chenpe32cp
  • chenpe32cp
  • 2017-01-08 10:05:52
  • 853

爬取豆瓣影评数据

import requests from bs4 import BeautifulSoup import re import csv # 字符串格式化 def F_data(data): # *...
  • sinat_36837311
  • sinat_36837311
  • 2017-05-14 22:07:56
  • 415

python爬虫 登陆豆瓣 爬豆瓣电影短评

       这个爬虫的目的是爬取豆瓣电影短评和评分(从1星到5星),这些东西可以做情感分类。由于不登录的情况下只能看电影短评的前几页,所以要实现登陆豆瓣。       登陆豆瓣的部分是在网上看的别人...
  • u013781175
  • u013781175
  • 2016-07-06 12:07:30
  • 2905

使用python+urllib爬取最受欢迎豆瓣影评信息

用网络爬虫爬取网站数据时,先尝试使用了最简单的方式,如果访问url失败,先考虑添加表头信息(User-Agent是最重要的信息),这样往往可以解决访问失败的问题。如果爬取过程中遭遇中断,往往是该网站的...
  • chenpe32cp
  • chenpe32cp
  • 2017-02-24 11:17:08
  • 199

Python2.7 爬虫实践:豆瓣电影影评分析

reference from :hang segmentfault.com/a/1190000010473819 本人先看到以上,觉得挺好玩,所以就跟着原作者的思路在撸一遍代码 后来发现了...
  • funfun0
  • funfun0
  • 2017-08-29 23:20:36
  • 418

(7)Python爬虫——爬取豆瓣电影Top250

利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Excel表中...
  • Fighting_No1
  • Fighting_No1
  • 2016-03-18 19:22:31
  • 7648

Python 简单爬虫 豆瓣热门影评

备忘用,写的不完善大家见笑了 # -*- coding:utf-8 -*- import urllib import urllib2 import re import xlwt book=xlwt...
  • spyder13
  • spyder13
  • 2016-09-09 18:40:08
  • 411

Python爬虫(1)——基于BeautifulSoup爬取豆瓣电影信息

本文主要用BeautifulSoup来爬取豆瓣Top电影信息。软件环境基于Anaconda3+python3.5 具体代码如下所示:# -*- coding: utf-8 -*- """ Creat...
  • FlySky1991
  • FlySky1991
  • 2017-03-26 21:56:14
  • 679
收藏助手
不良信息举报
您举报文章:Python爬取豆瓣影评
举报原因:
原因补充:

(最多只允许输入30个字)