豆瓣评论爬取

豆瓣评论爬取

  • 数据来源 豆瓣电影
  • 爬取目标
  • 获取自定义页面的数据
  • 将数据保存为文本文档

下面展示部分代码

配置代理池

#代理池配置
proxies_pool=[
    {'http':'114.233.71.160:9000'},
    {'http':'111.225.153.132:8089'},
    {'http':'180.105.117.139:8089'},
    {'http':'111.225.152.68:8089'},
    {'http':'36.138.56.214:3128'},
    {'http':'175.100.72.95:57938'},
    {'http':'198.199.74.99:59166'},
    {'http':'176.100.216.154:8087'},
    {'http':'4.16.68.158:443'},
    {'http':'161.35.70.249:8080'},
]

导入需要的Python库

#导入需要的库
from  lxml import etree
import urllib.request
import urllib.parse
import random

构造请求头

def creat_request(page):
    base_url='https://movie.douban.com/subject/35267208/comments?'
    # https://movie.douban.com/subject/35267208/comments?comment_id=3649271279
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.56'

    }

定义方法,获取豆瓣评论数据

def get_content(request):
    handller = urllib.request.ProxyHandler(proxies=proxies)
    opener = urllib.request.build_opener(handller)
    response = opener.open(request)
    # response=urllib.request.urlopen(request)

    tree=etree.HTML(response.read().decode('utf-8'))
    result=tree.xpath('//span[@class="short"]/text()')
    return result

定义方法,下载爬取的数据,保存为文本文件

def down_load(page,result):
    with open('./doubancomment'+str(page)+'txt',mode='w',encoding='utf-8') as file:
        file.write(str(result))

以上就是部分核心代码,爬取的效果还是不错的,简单快捷,还可以继续增加部分信息(如评论人网名和星级)实现更好的爬取效果

规规矩矩的爬取

另一篇文章中已经将程序打包好为执行文件,可以看看点击跳转
豆瓣250电影列表是豆瓣网站上著名的电影排行榜,用户可以从中看到经过大众评价筛选出的高分电影。如果你想要爬取这个榜单上的电影评论,首先需要明确这是网络数据抓取的一种应用场景。通常步骤包括: 1. **获取网页源码**:使用Python的requests库或其他HTTP客户端,发送GET请求到豆瓣电影Top250页面的URL,然后解析返回的HTML内容。 ```python import requests from bs4 import BeautifulSoup url = "https://movie.douban.com/top250" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') ``` 2. **解析HTML**:利用BeautifulSoup或其他解析工具如lxml,找到包含评论的DOM元素。这些元素通常隐藏在JavaScript渲染后的数据里,如果直接爬取,可能会遇到动态加载的问题。 3. **处理AJAX请求**:如果评论是通过AJAX异步加载的,可能需要模拟浏览器行为,发送更多的请求。可以使用selenium、Scrapy-Splash等库来处理。 ```python from selenium import webdriver driver = webdriver.Firefox() # 或Chrome driver.get(url) comments = driver.find_elements_by_css_selector('.comment .short') # 样式假设 ``` 4. **数据提取**:解析每个评论节点,提取出评分、评论内容以及用户信息等,并保存到本地文件或数据库。 5. **遵守规则**:爬虫操作需遵守网站的robots.txt协议,尊重版权,不要过度频繁地请求,以免对服务器造成压力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值