python爬虫爬取某站上海租房图片

对于一个net开发这爬虫真真的以前没有写过。这段时间开始学习python爬虫,今天周末无聊写了一段代码爬取上海租房图片,其实很简短就是利用爬虫的第三方库Requests与BeautifulSoup。python 版本:python3.6 ,IDE :pycharm。其实就几行代码,但希望没有开发基础的人也能一下子看明白,所以大神请绕行。

第三方库首先安装

我是用的pycharm所以另为的脚本安装我这就不介绍了。

如上图打开默认设置选择Project Interprecter,双击pip或者点击加号,搜索要安装的第三方库。其中如果建立的项目多记得Project Interprecter要选择正确的安装位置不然无法导入。

Requests库

requests库的官方定义:Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。其实他就是请求网络获取网页数据的。

import requests
header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
res=requests.get('http://sh.58.com/zufang/',headers=header)
try:
  print(res.text);
except ConnectionError:
  print('访问被拒绝!!!')

结果如下:

其中Request Headers的参数如下:

#headers的一些属性:
#Accept:指定客户端能够接收的内容类型,内容类型的先后次序表示客户都接收的先后次序
#Accept-Lanuage:指定HTTP客户端浏览器用来展示返回信息优先选择的语言
#Accept-Encoding指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。表示允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。而这里设置的就是客户端浏览器所能够支持的返回压缩格式。
#Accept-Charset:HTTP客户端浏览器可以接受的字符编码集
# User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求
# Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
# application/xml : 在 XML RPC,如 RESTful/SOAP 调用时使用
# application/json : 在 JSON RPC 调用时使用
# application/x-www-form-urlencoded : 浏览器提交 Web 表单时使用
# 在使用服务器提供的 RESTful 或 SOAP 服务时, Content-Type 设置错误会导致服务器拒绝服务

BeautifulSoup库

BeautifulSoup可以轻松的解析Requests库请求的页面,并把页面源代码解析为Soup文档,一边过滤提取数据。这是bs4.2的文档

Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器,其中lxml 据说是相对而言比较强大的我下面的暗示是python 标准库的。

选择器select

# 选择所有div标签
soup.select("div")
# 选择所有p标签中的第三个标签
soup.select("p:nth-of-type(3)")
相当于soup.select(p)[2]
# 选择div标签下的所有img标签
soup.select("div img")
# 选择div标签下的直接a子标签
soup.select("div > a")
# 选择id=link1后的所有兄弟节点标签
soup.select("#link1 ~ .mybro")
# 选择id=link1后的下一个兄弟节点标签
soup.select("#link1 + .mybro")
# 选择a标签,其类属性为className的标签
soup.select("a .className")
# 选择a标签,其id属性为idName的标签
soup.select("a #idName")
# 选择a标签,其属性中存在attrName的所有标签
soup.select("a[attrName]")
# 选择a标签,其属性href=http://wangyanling.com的所有标签
soup.select("a[href='http://wangyanling.com']")
# 选择a标签,其href属性以http开头
soup.select('a[href^="http"]')
# 选择a标签,其href属性以lacie结尾
soup.select('a[href$="lacie"]')
# 选择a标签,其href属性包含.com
soup.select('a[href*=".com"]')
# 从html中排除某标签,此时soup中不再有script标签
[s.extract() for s in soup('script')]
# 如果想排除多个呢
[s.extract() for s in soup(['script','fram']

BeautifulSoup库需要学习的知识点,请参考bs4.2的文档。在这不再过多叙述。

import requests
from bs4 import BeautifulSoup
header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
res=requests.get('http://cd.58.com/zufang/',headers=header)
soup=BeautifulSoup(res.text,'html.parser')
print(soup.prettify())

案例:爬取上海租房图片

import requests
import urllib.request
import os
import time
from bs4 import BeautifulSoup
header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'}
url=['http://sh.58.com/zufang/pn{}/?ClickID=2'.format(number) for number in range(6,51)]#分页抓取
adminCout=6
for arurl in url:
  adminCout=adminCout+1
  res=requests.get(arurl,headers=header)
  soup=BeautifulSoup(res.text,'html.parser')
  arryImg=soup.select('.img_list img')
  print(arryImg)
  count = 0;
  for img in arryImg:
    print(img['lazy_src'])
    _url = img['lazy_src']
    pathName = "E:\\2333\\" + str(adminCout)+"_"+str(count) + ".jpg" # 设置路径和文件名
    result = urllib.request.urlopen(_url) # 打开链接,和python2.x不同请注意了
    data = result.read() # 否则开始下载到本地
    with open(pathName, "wb") as code:
      code.write(data)
      code.close()
      count = count + 1 # 计数+1
      print("正在下载第:", count)
    time.sleep(30)

只是实现功能,至于代码结果如下:

结语:

对于python并非为了从net跳出来,学习python只是感兴趣,但是通过这段时间的学习确实有些思想从net的思路中跳了出来,接下来一年的业余时间应该都会花在学习python上,还希望自己能坚持下去。这应该是2017年最后一篇文章,在这给大家拜个早年。

您可能感兴趣的文章:

  • Python爬虫实现百度图片自动下载
  • Python爬虫爬取一个网页上的图片地址实例代码
  • Python之多线程爬虫抓取网页图片的示例代码
  • python爬虫获取京东手机图片的图文教程
  • Python制作豆瓣图片的爬虫
  • Python爬虫实现爬取京东手机页面的图片(实例代码)
  • Python中Scrapy爬虫图片处理详解
  • python爬虫系列Selenium定向爬取虎扑篮球图片详解
  • python 实现一个贴吧图片爬虫的示例
  • Python 3实战爬虫之爬取京东图书的图片详解
(0)

相关推荐

  • Python之多线程爬虫抓取网页图片的示例代码

    目标 嗯,我们知道搜索或浏览网站时会有很多精美.漂亮的图片. 我们下载的时候,得鼠标一个个下载,而且还翻页. 那么,有没有一种方法,可以使用非人工方式自动识别并下载图片.美美哒. 那么请使用python语言,构建一个抓取和下载网页图片的爬虫. 当然为了提高效率,我们同时采用多线程并行方式. 思路分析 Python有很多的第三方库,可以帮助我们实现各种各样的功能.问题在于,我们弄清楚我们需要什么: 1)http请求库,根据网站地址可以获取网页源代码.甚至可以下载图片写入磁盘. 2)解析网页源代码,

  • Python 3实战爬虫之爬取京东图书的图片详解

    前言 最近工作中遇到一个需求,需要将京东上图书的图片下载下来,假如我们想把京东商城图书类的图片类商品图片全部下载到本地,通过手工复制粘贴将是一项非常庞大的工程,此时,可以用Python网络爬虫实现,这类爬虫称为图片爬虫,接下来,我们将实现该爬虫. 实现分析 首先,打开要爬取的第一个网页,这个网页将作为要爬取的起始页面.我们打开京东,选择图书分类,由于图书所有种类的图书有很多,我们选择爬取所有编程语言的图书图片吧,网址为:https://list.jd.com/list.html?cat=1713

  • Python爬虫实现百度图片自动下载

    制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求分析网页源代码,配合开发者工具编写正则表达式或者XPath表达式正式编写 python 爬虫代码 效果预览 运行效果如下: 存放图片的文件夹: 需求分析 我们的爬虫至少要实现两个功能:一是搜索图片,二是自动下载. 搜索图片:最容易想到的是爬百度图片的结果,我们就上百度图片看看: 随便搜索几个关键字,可以看到已经搜索出来很多张图片: 分析网页 我们点击右键,查看源代码: 打开源代码之后,发现一堆源代码比较难找出我们想要的资源. 这个时候,就

  • python爬虫系列Selenium定向爬取虎扑篮球图片详解

    前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员还是写个程序来进行吧! 所以我通过Python+Selenium+正则表达式+urllib2进行海量图片爬取. 运行效果: http://photo.hupu.com/nba/tag/马刺 http://photo.hupu.com/nba/tag/陈露 源代码: # -*- coding: utf

  • python 实现一个贴吧图片爬虫的示例

    今天没事回家写了个贴吧图片下载程序,工具用的是PyCharm,这个工具很实用,开始用的Eclipse,但是再使用类库或者其它方便并不实用,所以最后下了个专业开发python程序的工具,开发环境是Python2,因为大学时自学的是python2 第一步:就是打开cmd命令,输入pip install lxml 如图 第二步:下载一个chrome插件:专门用来将html文件转为xml用xpth技术定位 在页面按下Ctrl+Shift+X即可打开插件进行页面分析 如下图 图中的黑色方框左边填写xpth

  • Python中Scrapy爬虫图片处理详解

    下载图片 下载图片有两种方式,一种是通过 Requests 模块发送 get 请求下载,另一种是使用 Scrapy 的 ImagesPipeline 图片管道类,这里主要讲后者. 安装 Scrapy 时并没有安装图像处理依赖包 Pillow,需手动安装否则运行爬虫出错. 首先在 settings.py 中设置图片的存储路径: IMAGES_STORE = 'D:/' 图片处理相关的选项还有: # 图片最小高度和宽度设置,可以过滤太小的图片 IMAGES_MIN_HEIGHT = 110 IMAG

  • Python爬虫实现爬取京东手机页面的图片(实例代码)

    实例如下所示: __author__ = 'Fred Zhao' import requests from bs4 import BeautifulSoup import os from urllib.request import urlretrieve class Picture(): def __init__(self): self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleW

  • Python制作豆瓣图片的爬虫

    前段时间自学了一段时间的Python,想着浓一点项目来练练手.看着大佬们一说就是爬了100W+的数据就非常的羡慕,不过对于我这种初学者来说,也就爬一爬图片. 我相信很多人的第一个爬虫程序都是爬去贴吧的图片,嗯,我平时不玩贴吧,加上我觉得豆瓣挺良心的,我就爬了豆瓣首页上面的图片.其实最刚开始是想爬全站,后来一想我这简直是脑子犯抽,全站的图片爬下来得有多少,再说这个只是练一下手,所以就只爬取了首页上的图片.废话不多说 开始代码. 首先是主文件的代码: import re from html_down

  • Python爬虫爬取一个网页上的图片地址实例代码

    本文实例主要是实现爬取一个网页上的图片地址,具体如下. 读取一个网页的源代码: import urllib.request def getHtml(url): html=urllib.request.urlopen(url).read() return html print(getHtml(http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E5%A3%81%E7%BA%B8&ct=201326592&am

  • python爬虫获取京东手机图片的图文教程

    如题,首先当然是要打开京东的手机页面 因为要获取不同页面的所有手机图片,所以我们要跳转到不同页面观察页面地址的规律,这里观察第二页页面 由观察可以得到,第二页的链接地址很有可能是 https://list.jd.com/list.html?cat=9987,653,655&page=2 那么对应第n页的地址就是 https://list.jd.com/list.html?cat=9987,653,655&page=n 我们就可以利用这个规律在编程的时候打开自己想要获取的页面了 接着我们查看

随机推荐