单个图片获取-爬取网易"数读"信息数据(暴涨的房租,正在摧毁中国年轻人的生活)
参考链接: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()
注:下载保存图片的函数还能再优化一下,不过懒得弄了,直接上随机数,哈哈
单个图片获取-爬取网易"数读"信息数据(暴涨的房租,正在摧毁中国年轻人的生活)的更多相关文章
- python爬取豆瓣电影信息数据
题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...
- Python scrapy框架爬取瓜子二手车信息数据
项目实施依赖: python,scrapy ,fiddler scrapy安装依赖的包: 可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载 pywi ...
- 使用Jsoup 爬取网易首页所有的图片
package com.enation.newtest; import java.io.File; import java.io.FileNotFoundException; import java. ...
- 爬虫—Selenium爬取JD商品信息
一,抓取分析 本次目标是爬取京东商品信息,包括商品的图片,名称,价格,评价人数,店铺名称.抓取入口就是京东的搜索页面,这个链接可以通过直接构造参数访问https://search.jd.com/Sea ...
- 如何利用python爬取网易新闻
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...
- 爬虫系列2:Requests+Xpath 爬取租房网站信息
Requests+Xpath 爬取租房网站信息 [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]:参考前文 ...
- python itchat 爬取微信好友信息
原文链接:https://mp.weixin.qq.com/s/4EXgR4GkriTnAzVxluJxmg 「itchat」一个开源的微信个人接口,今天我们就用itchat爬取微信好友信息,无图言虚 ...
- 简单的python爬虫--爬取Taobao淘女郎信息
最近在学Python的爬虫,顺便就练习了一下爬取淘宝上的淘女郎信息:手法简单,由于淘宝网站本上做了很多的防爬措施,应此效果不太好! 爬虫的入口:https://mm.taobao.com/json/r ...
- [Python学习] 简单爬取CSDN下载资源信息
这是一篇Python爬取CSDN下载资源信息的样例,主要是通过urllib2获取CSDN某个人全部资源的资源URL.资源名称.下载次数.分数等信息.写这篇文章的原因是我想获取自己的资源全部的评论信息. ...
随机推荐
- C++智能指针--auto_ptr指针
auto_ptr是C++标准库提供的类模板,头文件<memory>,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存的拥有者,一块内存不能同一时候被分给两个拥有者.当 ...
- 卸载了 TortoiseGit,问题太多
电脑里面同一时候安装TortoiseGit 和 TortoiseSVN,使用tortoiseGIT来跟踪git项目,有一个非常无语的问题,git status显示都是clean的.可是目录图标却始终显 ...
- B4321 queue2 dp
这个题的dp真的恶心.首先,一开始我以为是一道数论题,但是组合数和这个题没啥关系.dp方程巨麻烦,状态是dp[i][j][0/1],代表i位连了j个,上一位是否连着.然后开始转移,证明如下: 我们先来 ...
- Nearest-Neighbor Methods(ESL读书笔记)
Nearest-neighbor methods use those observations in the training set T closest in input space to x f ...
- Django day24 cbv和APIView的源码分析 和 resful的规范
一:cbv的源码分析 1.CBV和FBV的区别: - Class Base View CBV(基于类的视图) - Function Base View FBV(基于函数的视图) 2.as_vi ...
- netty之ByteBuf详解
[ChannelPromise作用:可以设置success或failure 是为了通知ChannelFutureListener]Netty的数据处理API通过两个组件暴露——abstract cla ...
- Asp.net跨域配置
<system.webServer> <httpProtocol> <customHeaders> <add name="Access-Contro ...
- Python启动浏览器Firefox\Chrome\IE
# -*- coding:utf-8 -*- import os import selenium from selenium import webdriver from selenium.webdri ...
- 实体 和 XML格式的转换
许多接口传输需要XML格式转换,那么如何实现?看下面帮助类→_→ /// <summary> /// XML处理帮助类,编码格式GBK!! /// </summary> pub ...
- swift-delegate(代理)或者block传值
1:delegate或者block传值 import UIKit class ViewController: UIViewController,TestDelegatePassValueDelegat ...