python日常—爬取豆瓣250条电影记录

#  感兴趣的同仁可以相互交流哦

import requests
import lxml.html,csv
doubanUrl = ‘https://movie.douban.com/top250?start={}&filter=‘

def getSource(doubanUrl):
    response = requests.get(doubanUrl)      # 获取网页
    response.encoding = ‘utf-8‘        # 修改编码
    return response.content             #获取源码

def getEveryItem(source):
    # 获取HTML对象
    selector = lxml.html.document_fromstring(source)
    # 提取标签所有的信息
    movieItemList = selector.xpath(‘//div[@class="info"]‘)
    # 定义一个空列表——用于展示信息
    movieList = []
    for eachMovie in movieItemList:
        movieDict = {}
        # 分层提取
        title = eachMovie.xpath(‘div[@class="hd"/a/span/[@class="title"]/text()‘)
        otherTitle = eachMovie.xpath(‘div[@class="hd"/a/span/[@class="other"]/text()‘)
        link = eachMovie.xpath(‘div[@class="hd"/a/@href‘)[0]
        star = eachMovie.xpath(‘div[@class="hd"/div[@class="star"]/span[@class="rating_num"]/text()‘)
        quote = eachMovie.xpath(‘div[@class="hd"/p[@class="quote"]/span/text()‘)
        # 保存字典信息
        movieDict[‘title‘] = ‘‘.join(title+otherTitle)
        movieDict[‘url‘] = link
        movieDict[‘star‘] = star
        movieDict[‘quote‘] = quote
        movieList.append(movieDict)
    return movieList

def writeData(movieList):
    with open(‘./Douban.csv‘,‘w‘,encoding=‘UTF-8‘,newline=‘‘) as f:
        writer = csv.DictWriter(f,fieldnames=[‘titlr‘,‘star‘,‘quote‘,‘url‘])
        # 写入表头
        writer.writeheader()
        for each in movieList:
            writer.writerow(each)

if __name__ == ‘main‘:
    # 共展示250条电影信息 每页25条 ,共10页
    movieList = []
    for i in range(10):
        # 获取url
        pageLink = doubanUrl.format(i*25)
        print(pageLink)
        # 根据地址获取资源
        source = getSource(pageLink)
        movieList = getEveryItem(source)

    print(movieList[:10])
    writeData(movieList)

原文地址:https://www.cnblogs.com/zxycb/p/9823311.html

时间: 2024-11-07 05:49:01

python日常—爬取豆瓣250条电影记录的相关文章

python xpath 爬取豆瓣电脑版电影案例

from lxml import etree import requests url = 'https://movie.douban.com/chart' headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36" } response

用Python爬取豆瓣Top250的电影标题

所以我们可以这么写去得到所有页面的链接我们知道标题是在 target="_blank"> 标题的位置</a> 之中 所以可以通过正则表达式找到所有符合条件的标题 将内容写入到表格保存起来 下面贴入完整代码 import requests, bs4, re, openpyxl url = 'https://www.douban.com/doulist/3936288/?start=%s' urls = [] 多少页 pages = 10 for i in range(p

python爬取豆瓣250存入mongodb全纪录

用了一周的时间总算搞定了,跨过了各种坑,总算调试成功了,记录如下: 1.首先在cmd中用命令行建立douban爬虫项目 scrapy startproject douban 2.我用的是pycharm,导入项目后, 1)在items.py中定义爬取的字段 items.py代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 # -*- coding: utf-8 -*- import scrapy class DoubanBookItem(scrapy.Item):     name

用Python分分钟爬取豆瓣本周口碑榜,就是有这么秀!

平常在生活中,不知道大家是怎么找电影的,反正小编是通过电影本周口碑榜来找的,个人感觉通过这种方式找来的电影都挺不错的.既然提到口碑榜,不如我们来爬下豆瓣电影本周口碑榜上的电影吧,怎么爬嘞,当然是用我们的Python爬虫啦!下面开始简单的介绍如何写爬虫. 在写爬虫前,我们首先简单明确两点: 1. 爬虫的网址: 2. 需要爬取的内容(数据). 鼠标点击需要爬取的数据,这里我们点"看不见的客人",如图所示. 看到大红色框框里的东西,是不是和我们最"重要"的代码有很多相似的

Python爬虫 爬取豆瓣读书

最近用Python写了个豆瓣读书的爬虫玩,方便搜罗各种美美书,分享给大家 实现功能: 1 可以爬下豆瓣读书标签下的所有图书 2 按评分排名依次存储 3 存储到Excel中,可方便大家筛选搜罗,比如筛选评价人数>1000的高分书籍:可依据不同的主题存储到Excel不同的Sheet 4 采用User Agent伪装为浏览器进行爬取,并加入随机延时来更好的模仿浏览器行为,避免爬虫被封 试着爬了七八万本书,存在了book_list.xlsx中,结果截图如下: 详细代码和爬取的一些结果可移步到GitHub

爬取豆瓣的tp250电影名单

# https://movie.douban.com/top250?start=25&filter= 要爬取的网页 import re from urllib.request import urlopen def getPage(url): response=urlopen(url) return response.read().decode('utf-8') def parsePage(s): ret=com.finditer(s) for i in ret: ret={ 'id': i.gr

python爬虫爬取豆瓣电影前250名电影及评分(requests+pyquery)

写了两个版本: 1.面向过程版本: import requests from pyquery import PyQuery as pq url='https://movie.douban.com/top250' moves=[] def sec(item): return item[1] for i in range(0,255,25): content=requests.get(url+"?start="+str(i))#?start=25 for movie in pq(conte

Python爬虫爬取豆瓣电影名称和链接,分别存入txt,excel和数据库

前提条件是python操作excel和数据库的环境配置是完整的,这个需要在python中安装导入相关依赖包: 实现的具体代码如下: #!/usr/bin/python# -*- coding: utf-8 -*- import urllibimport urllib2import sysimport reimport sslimport openpyxlimport MySQLdbimport time #from bs4 import BeautifulSoup #修改系统默认编码为utf-8

python爬虫--爬取豆瓣top250电影名

关于模拟浏览器登录的header,可以在相应网站按F12调取出编辑器,点击netwook,如下: 以便于不会被网站反爬虫拒绝. 1 import requests 2 from bs4 import BeautifulSoup 5 def get_movies(): 6 headers = { 7 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrom