针对一个net开发设计这网络爬虫真确实之前沒有读过。这段时间开始学习python网络爬虫,今日礼拜天无趣写了一段编码抓取上海市租房图片,实际上很简洁明了便是运用网络爬虫的第三方库Requests与BeautifulSoup。Python 版本号:python3.6 ,IDE :pycharm。实际上就两行编码,但期待沒有开发设计基本的人也可以一下子看搞清楚,因此高手请绕道。

第三方库最先安裝

我是用的pycharm因此另为的脚本制作安裝我这也不详细介绍了。

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

如圖开启默认选择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('访问被拒绝!!!')

結果以下:

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

在其中Request Headers的主要参数以下:

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

#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 标准库的。

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

选择器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爬虫爬取某站上海租房图片 租房图片 爬虫 python python  第5张

总结:

针对python并不是为了更好地从net蹦出来,学习培训python仅仅很感兴趣,可是根据这段时间的学习培训的确一些观念从net的构思中跳了出去,接下去一年的碎片时间应当都是会花在学习培训python上,还期待自身能坚持到底。这应该是17年最终一篇文章,在这里给大伙儿拜个早年。