爬虫实际上是用浏览器访问的方式模拟了访问网站的过程,整个过程包括三个阶段:打开网页、提取数据和保存数据。
在 Python 中,这三个阶段都有对应的工具可以使用。在“打开网页”这一步骤中,可以使用 Requests 访问页面,得到服务器返回给我们的数据,这里包括 HTML 页面以及 JSON 数据。在“提取数据”这一步骤中,主要用到了两个工具。针对 HTML 页面,可以使用 XPath 进行元素定位,提取数据;针对 JSON 数据,可以使用 JSON 进行解析。在最后一步“保存数据”中,我们可以使用 Pandas 保存数据,最后导出 CSV 文件。

Xpath定位
import os
import requests
from lxml import etree
from selenium import webdriver                                                                                           search_text = "王祖贤"
start = 0
limit = 15
total = 15                                                                                                               def download(img, title):                                                                                                dir = "D:\\数据分析\\python test\\query\\" + search_text + "\\"                                                          id = title.replace(u'\u200e', u'').replace(u'?', u'') .replace(u'/', u'or')                                          if not os.path.exists(dir):                                                                                          os.makedirs(dir)                                                                                                 try:                                                                                                                 pic = requests.get(img, timeout=10)                                                                              img_path = dir + str(id) + '.jpg'                                                                                fp = open(img_path, 'wb')                                                                                        fp.write(pic.content)                                                                                            fp.close()                                                                                                       except requests.exceptions.ConnectionError:                                                                          print('图片无法下载')                                                                                                  def crawler_xpath():                                                                                                     src_img = "//div[@class='item-root']/a[@class='cover-link']/img[@class='cover']/@src"                                src_title = "//div[@class='item-root']/div[@class='detail']/div[@class='title']/a[@class='title-text']"              for i in range(start,total,limit):                                                                                   request_url = "https://search.douban.com/movie/subject_search?search_text="+search_text+"&cat=1002&start="+str(i)driver = webdriver.Chrome()                                                                                      driver.get(request_url)                                                                                          html = etree.HTML(driver.page_source)                                                                            imgs = html.xpath(src_img)                                                                                       titles = html.xpath(src_title)                                                                                   print(imgs,titles)                                                                                               for img, title in zip(imgs, titles):                                                                                 download(img, title.text)                                                                                        if __name__ == '__main__':                                                                                               crawler_xpath()
JSON解析
import requests
import json
query = '王祖贤'
''' 下载图片 '''def download(src, id):dir = './' + str(id) + '.jpg'try:pic = requests.get(src, timeout=10)fp = open(dir, 'wb')fp.write(pic.content)fp.close()except requests.exceptions.ConnectionError:print('图片无法下载')''' for 循环 请求全部的 url '''
for i in range(0, 22471, 20):url = 'https://www.douban.com/j/search_photo?q=' + query + '&limit=20&start=' + str(i)print(url)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}req = requests.g小菜鸡的技术之路et(url=url,headers=headers)html = req.text  # 得到返回结果print(html)response = json.loads(html, encoding='utf-8')  # 将 JSON 格式转换成 Python 对象for image in response['images']:print(image['src'])  # 查看当前下载的图片网址download(image['src'], image['id'])  # 下载一张图片

欢迎关注个人微信公众号:小菜鸡的技术之路。

爬取豆瓣王祖贤电影海报代码相关推荐

  1. python爬虫——爬取豆瓣热门电影海报生成html文件

    环境 webbrowser urllib requests v2.21.0 实现功能 过程 1.查看豆瓣热门电影模块源码: 看到其所在class为list-wp,我们想通过urllib里面的reque ...

  2. 【实战2】爬取豆瓣Top250电影的海报

    [实战2]爬取豆瓣Top250电影的海报 一. 项目目标分析 二. 完整代码 参考链接: https://www.bilibili.com/video/BV1ZJ411N7Fq?p=4 一. 项目目标 ...

  3. [python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息

    这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息,两种方法从本质上都是一样的,都是通过分析网页的DOM树结构进行元素定位,再定向爬取具体的电影信息,通过代码的对 ...

  4. python 爬取豆瓣top100电影页面

    python 爬取豆瓣top100电影页面 运行结果截图: 代码: (原网站:https://movie.douban.com/top250) 1.将页面保存 避免多次访问 (登陆状态需页面cooki ...

  5. python爬取豆瓣排行榜电影(静态爬取)(二次爬取)

    目录 python爬取豆瓣排行榜电影(静态爬取) 获取网站url 获取网站headers get请求访问url BeautifulSoup解析网站 爬取html数据 完整代码 python爬取豆瓣排行 ...

  6. scrapy爬取豆瓣top250电影数据

    scrapy爬取豆瓣top250电影数据 scrapy框架 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. sc ...

  7. 爬虫实战(一)利用scrapy爬取豆瓣华语电影

    爬虫第一个项目是爬取豆瓣华语电影,后面将对这部分数据进行分析. 本文也是发表于『运筹OR帷幄』微信公众号的<用数据带你了解电影行业-华语篇>的爬虫介绍篇. 1. 爬取思路 在观察了豆瓣每个 ...

  8. Python爬取豆瓣Top250电影中2000年后上映的影片信息

    Python爬取豆瓣Top250电影中2000年后上映的影片信息 前言 双十一前加在京东购物车的一个东西,价格330,Plus会员用券后差不多310.双十一当天打开看了下399,还得去抢满300减10 ...

  9. python采用requests+bs4爬取豆瓣top250电影信息

    爬取豆瓣top250电影说明 (链接:https://movie.douban.com/top250,可爬取一页或者多页(输出电影的正标题(肖申克的救赎),副标题( The Shawshank Red ...

最新文章

  1. springmvc集成oracle,SpringMVC整合druid
  2. C 虚函数表及多态内部原理详解
  3. 动态规划 —— 背包问题 P02 —— 完全背包
  4. FTL(FreeMarker)基础
  5. Python提取 Gprmax 3.0 的out文件数据
  6. try catch中getRequestDispatcher跳转
  7. Java进阶:SpringMVC数据请求全局过滤器
  8. 电池SOH仿真系列-基于LSTM神经网络的电池SOH估算方法
  9. 第九届大唐杯省赛知识梳理-5G协议与信令(20%)
  10. WinCC数据报表控件
  11. 【转】什么是Online Learning
  12. The7强大多功能模板Var9.16.0+基于WordPress
  13. 使用计算机用眼卫生,电脑族日常保护眼睛小常识
  14. 如何VUE写桌面应用(electron)
  15. 如何找回存储在DBeaver连接中的数据库密码
  16. 【耀杨闯荡华儿街】(面试官)曹阿门:给我讲讲多线程;耀杨:md心态崩了~
  17. 电脑定时清理微信数据
  18. 为什么说裁员18000只是微软计划的一部分
  19. [Ubuntu 18.04]公共DNS设置[/etc/resolv.conf]
  20. 无法安装冰点还原_电脑无法开机,重装系统太麻烦?不如试试直接备份恢复系统...

热门文章

  1. JVM问题排查工具:Serviceability-Agent介绍
  2. 贪吃蛇c语言代码图片,【图片】C语言小游戏~贪吃蛇【c语言吧】_百度贴吧
  3. Java实现PDF合同生成
  4. excel表格损坏修复要注意事项
  5. k8s部署eureka集群
  6. PPT计算机基础知识,计算机基础知识(精美版).ppt
  7. 18个顶级人工智能平台
  8. 桌面计算机 笔记本,一起show桌面——我的办公桌面
  9. 收藏本页及收藏制定网址
  10. c#显示mjpg-stream流