参考链接:https://www.makcyun.top/web_scraping_withpython3.html

该网页其实有16张图片,但是因为页面数据中某处多个空白,导致参考链接中的方式只有15张图片,并且亲测有些方式能用,有些方式不能用,特此记录一下

正常显示:

不正常显示:

#!/usr/bin/env python
# -*- coding: utf-8 -*- import random
import re import requests
from bs4 import BeautifulSoup
from lxml import etree
from pyquery import PyQuery as pq
from requests import RequestException headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0'
} def get_one_page():
url = 'http://data.163.com/18/0901/01/DQJ3D0D9000181IU.html'
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
except RequestException:
print('网页请求失败')
return None ### 如下是解析网页数据的5中方式 # 正则表达式
def parse_one_page1(html):
pattern = re.compile('<img alt=".*?租" src="(.*?)"', re.S)
items = re.findall(pattern, html)
for item in items:
yield {
'url': item
} # Xpath语法 # 使用这个('*//p//img[@alt = "房租"]/@src') 则结果只有15条,因为有个alt参数中房租前面有空格
def parse_one_page2(html):
parse = etree.HTML(html)
items = parse.xpath('*//img[@style="margin: 0px auto; display: block;" ]/@src')
for item in items:
yield {
'url': item
} # CSS选择器,结果有8条,还有待研究
def parse_one_page3(html):
soup = BeautifulSoup(html, 'lxml')
items = soup.select('p a img')
# print(items)
for item in items:
yield {
'url': item['src']
} # Beautiful Soup + find_all函数提取 结果有8条,还有待研究
def parse_one_page4(html):
soup = BeautifulSoup(html, 'lxml')
item = soup.find_all(attrs={'width': '100%', 'style': 'margin: 0px auto; display: block;'})
print(item)
for i in range(len(item)):
url = item[i].attrs['src']
yield {
'url': url
} # PyQuery
def parse_one_page5(html):
data = pq(html)
data2 = data('p>a>img')
for item in data2.items():
yield {
'url': item.attr('src')
} def download_thumb(url, name):
print(url, name)
try:
response = requests.get(url)
with open(name + '.jpg', 'wb') as f:
f.write(response.content)
except RequestException as e:
print(e)
pass def main():
html = get_one_page()
items = parse_one_page5(html)
for item in items:
# print(item['url'])
download_thumb(item['url'], str(random.randint(1, 1000))) if __name__ == '__main__':
main()

注:下载保存图片的函数还能再优化一下,不过懒得弄了,直接上随机数,哈哈

单个图片获取-爬取网易"数读"信息数据(暴涨的房租,正在摧毁中国年轻人的生活)的更多相关文章

  1. python爬取豆瓣电影信息数据

    题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...

  2. Python scrapy框架爬取瓜子二手车信息数据

    项目实施依赖: python,scrapy ,fiddler scrapy安装依赖的包: 可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/  下载 pywi ...

  3. 使用Jsoup 爬取网易首页所有的图片

    package com.enation.newtest; import java.io.File; import java.io.FileNotFoundException; import java. ...

  4. 爬虫—Selenium爬取JD商品信息

    一,抓取分析 本次目标是爬取京东商品信息,包括商品的图片,名称,价格,评价人数,店铺名称.抓取入口就是京东的搜索页面,这个链接可以通过直接构造参数访问https://search.jd.com/Sea ...

  5. 如何利用python爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...

  6. 爬虫系列2:Requests+Xpath 爬取租房网站信息

    Requests+Xpath 爬取租房网站信息 [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]:参考前文 ...

  7. python itchat 爬取微信好友信息

    原文链接:https://mp.weixin.qq.com/s/4EXgR4GkriTnAzVxluJxmg 「itchat」一个开源的微信个人接口,今天我们就用itchat爬取微信好友信息,无图言虚 ...

  8. 简单的python爬虫--爬取Taobao淘女郎信息

    最近在学Python的爬虫,顺便就练习了一下爬取淘宝上的淘女郎信息:手法简单,由于淘宝网站本上做了很多的防爬措施,应此效果不太好! 爬虫的入口:https://mm.taobao.com/json/r ...

  9. [Python学习] 简单爬取CSDN下载资源信息

    这是一篇Python爬取CSDN下载资源信息的样例,主要是通过urllib2获取CSDN某个人全部资源的资源URL.资源名称.下载次数.分数等信息.写这篇文章的原因是我想获取自己的资源全部的评论信息. ...

随机推荐

  1. [Jest] Use property matchers in snapshot tests with Jest

    With the right process in place, snapshot tests can be a great way to detect unintended changes in a ...

  2. Java基础之hashCode方法具体解释

    想要明确hashCode的作用,必须要先知道java中的集合.(不明确的请看Java基础之集合框架具体解释(二)List篇和Java基础之集合框架具体解释(三)Set篇) Java中的Collecti ...

  3. spring mvc文件上传,request对象转换异常

    spring 文件上传有现成的工具用起来也挺简单.就是在还不是非常熟悉的时候可能会出一些错. 近期碰到了 org.apache.catalina.connector.RequestFacade can ...

  4. POJ2417 Baby-Step-Gaint-Step 算法

    考虑一个问题:A^x%p=B,给定A,B,p,求x的最小非负整数解. 在p是质数的情况下,这个问题比較简单. A^x=B(mod P) (P is a Prime, A,B<P) Let m = ...

  5. codeforces 915D Almost Acyclic Graph 拓扑排序

    大意:给出一个有向图,问能否在只去掉一条边的情况下破掉所有的环 解析:最直接的是枚举每个边,将其禁用,然后在图中找环,如果可以就YES,都不行就NO 复杂度O(N*M)看起来不超时 但是实现了以后发现 ...

  6. 对ip数据进行分类----c++

    #!/usr/bin/expect set ip [lindex $argv ] set password [lindex $argv ] spawn -l root ${ip} "host ...

  7. python关于文件的操作

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  8. centos7用rpm安装mysql5.7【初始用yum安装发现下载非常慢,就考虑本地用迅雷下载rpm方式安装】

    1.下载 4个rpm包 mysql-community-client-5.7.26-1.el7.x86_64.rpmmysql-community-common-5.7.26-1.el7.x86_64 ...

  9. idea新建文件无法识别(二)

    1,出现问题的步骤: 当想新增一个Hello.java文件时候 选错了文件类型.新建了一个text文件.当回过头来把文件后缀改掉的时候发现idea无法识别,颜色一直是灰色. 2,解决问题的办法: 选择 ...

  10. epoll实现reactor模式