gevent异步爬取豆瓣top250 movie

4人阅读 评论(0) 收藏 举报
分类:
import requests
from lxml import etree
from time import time
import gevent
from gevent import monkey
monkey.patch_all()

url = 'https://movie.douban.com/top250'

def fetch_page(url):
    response = requests.get(url)
    return response

def fetch_content(url):
    response = fetch_page(url)
    page = response.content
    return page

def parse(url):
    page = fetch_content(url)
    html = etree.HTML(page)

    xpath_movie = '//*[@id="content"]/div/div[1]/ol/li'
    xpath_title = './/span[@class="title"]'
    xpath_pages = '//*[@id="content"]/div/div[1]/div[2]/a'

    pages = html.xpath(xpath_pages)
    fetch_list = []
    result = []

    for element_movie in html.xpath(xpath_movie):
        result.append(element_movie)

    for p in pages:
        fetch_list.append(url + p.get('href'))

    jobs = [gevent.spawn(fetch_content, url) for url in fetch_list]
    gevent.joinall(jobs)
    #[job.value for job in jobs]

    for page in [job.value for job in jobs]:
        html = etree.HTML(page)
        for element_movie in html.xpath(xpath_movie):
            result.append(element_movie)

    for i, movie in enumerate(result, 1):
        title = movie.find(xpath_title).text
        print('{} {}'.format(i,title.encode('utf-8')))
def main():
    start=time()
    parse(url)
    end=time()
    print('Cost {} seconds'.format((end - start)))

if __name__ == '__main__':
    main()

查看评论

使用requests爬取豆瓣电影top250

今天使用requests获取豆瓣电影top250的内容,先说下思路 表设计 获取每一页的内容 获取当前页每一部电影对应的链接 获取所有页的url for i in range(10): ...
  • mockingbirds
  • mockingbirds
  • 2017-06-03 18:51:09
  • 4207

Python调用豆瓣API抓取top250电影并存储进数据库

前言:学习了一段时间的python,想要把学习到的东西串起来做一遍,于是有了这个小程序,初学者,记录自己的学习过程   ^-^ Python广泛应用于爬虫程序,但是爬虫程序有时候需要对页面做复杂的...
  • qq894662851
  • qq894662851
  • 2016-09-24 21:51:41
  • 1181

scrapy爬取豆瓣电影top250并存储到mysql

1.定义item,只是作为测试用例,就只记录电影名称和评分吧 import scrapy class MovieTop250Item(scrapy.Item): # define the f...
  • a1091885194
  • a1091885194
  • 2017-12-02 22:42:46
  • 208

Python 采用Scrapy爬虫框架爬取豆瓣电影top250

scrapy 简介在此,默认已经安装好Scrapy,如果没有安装可以到scrapy 官网下载安装。 注意: 在安装Scrapy之前首先需要安装一下python第三方库:(安装方法并不在本文讲解范围...
  • dylanzr
  • dylanzr
  • 2016-06-26 21:49:28
  • 5916

python爬取豆瓣图书Top250

python3.5 爬取豆瓣读书Top250并保存
  • github_37480618
  • github_37480618
  • 2017-03-19 21:41:42
  • 381

scrapy ------ 爬取豆瓣电影TOP250

转载自 —> 原文#items.py # -*- coding: utf-8 -*- import scrapyclass DoubanMovieItem(scrapy.Item): rank...
  • hunyxv
  • hunyxv
  • 2017-04-17 21:37:28
  • 1073

爬虫框架scrapy,爬取豆瓣电影top250

1 . 新建项目进入打算存储代码的目录,命令行运行如下语句 scrapy startproject tutorial 2 . 定义Itemimport scrapyclass DoubanItem...
  • almost_Mr
  • almost_Mr
  • 2016-12-31 23:09:11
  • 3464

豆瓣电影Top250爬取的数据的一些简单可视化笔记

豆瓣Top250网址 将之前爬取到的豆瓣电影进行简单的可视化: 数据列表保存为CSV格式,如图#!-*- coding:utf-8 -*- import pandas as pd import n...
  • cjooo0
  • cjooo0
  • 2016-05-19 20:23:52
  • 2435

爬取豆瓣Top250图书【Beautiful】

由于我有一个喜欢看书的室友,最近比较闹书荒,我觉得爬取一下豆瓣评分Top250的图书,看看他有没有想看的(并不是为了装那啥。。。 爬取目标 + 爬取豆瓣评分Top250的图书 + 获取每本图书的详...
  • Richie_ll
  • Richie_ll
  • 2017-03-03 17:17:20
  • 1262
    个人资料
    持之以恒
    等级:
    访问量: 913
    积分: 104
    排名: 110万+
    文章存档