使用lxml包,从简单的网页中获取文本和图片

爬取网址:http://www.pythonscraping.com/pages/page3.htm

第一步 ,看网页结构

F12打开开发者模式,大致网页结构如下,看图:

下面这个图片是针对一个tr标签的详解,代码与显示一一对应:

第二步 ,代码解释

lxml简单使用

在自己想爬取的文本位置上单击右键,选择copy–>Xpath,即可获得xpath内容,但需要我们稍作修改。

获得的xpath如下:

//*[@id="gift1"]/td[4]/img

但由于id是变化的,而每项里面的class是不变的,所以修改一下,并加上src属性,得到:

//*[@class="gift"]/td[4]/img/@src

1、获取文本— 以第一个td为例

title = html.xpath('//*[@class="gift"]/td[1]/text()')

2、 获取标签下所有文本——获得第二个td

这里主要是第二部分的描述,td下不仅仅是文本还有span标签,所以如果用text()会出现许多空行并且获取不到span下的文本,这里要用string()

#获得html中所有的class="gift"元素下的所有第二个td子元素

desc = html.xpath('//*[@class="gift"]/td[2]')

for i in range(0,len(desc)):

#处理元素获得字符串

descText = desc[i].xpath('string(.)')

3、 获取图片

获取img标签中的src属性中的内容

imgs=html.xpath('//*[@class="gift"]/td[4]/img/@src')

在读取图片时注意,由于爬取的图片信息是这种形式:../img/gifts/img1.jpg

在保存图片时需要改写一下路径

img = '../img/gifts/img1.jpg'

实际图片路径:

imgUrl = 'http://www.pythonscraping.com/x/'+img

`x/`只是为了多一层,名字随便,抵消掉`../`

第三步 ,所有代码

导入三个包,如果没有该包,就pip install ,但如果pip install lxml 失败,就看看这个 通过lxml的.whl文件来进行安装

import requests

from lxml import etree

import re

#文本信息保存在test.txt

file = open("test.txt",'w',encoding='utf-8')

url = "http://www.pythonscraping.com/pages/page3.html"

res = requests.get(url)

content = res.content

html = etree.HTML(content)

#数据解析

title = html.xpath('//*[@class="gift"]/td[1]/text()')

desc = html.xpath('//*[@class="gift"]/td[2]')

price = html.xpath('//*[@class="gift"]/td[3]/text()')

imgs=html.xpath('//*[@class="gift"]/td[4]/img/@src')

#写入文件

x = len(title)

for i in range(0,x):

# 描述要特别处理

descText = desc[i].xpath('string(.)')

#保存文本信息

file.write("第"+str(i+1)+"行数据"+"\n"+title[i]+"\n"+descText+"\n"+price[i]+"\n\n")

#下载图片

with open('F:\PythonWork\\taobao_code\images\\'+str(i)+'.jpg', 'wb') as fd:

picture=requests.get('http://www.pythonscraping.com/x/'+imgs[i]).content

fd.write(picture)

print("成功下载%s.jpg"%i)

#关闭文件

file.close()

总结

重点注意获取标签里面所有文本内容

小白html图片添加文字,小白爬虫入门——爬取图片和文字(超详细)相关推荐

  1. 小白爬虫入门——爬取图片和文字(超详细)

    使用lxml包,从简单的网页中获取文本和图片 爬取网址:http://www.pythonscraping.com/pages/page3.htm 第一步 ,看网页结构 F12打开开发者模式,大致网页 ...

  2. 菜鸡爬虫入门——爬取图片

    爬取图片的一般步骤 1.先声明一个存放图片的地址(path) 2图片是二进制格式,如何把二进制保存为图片呢? 2.1 用到with open()先打开文件 2.2 r.content表示返回内容的二进 ...

  3. 用python爬虫爬取无水印图片_使用python 爬虫,爬取图片

    一.需求: 用python实现去内涵段子里面下载网页当中的图片到本地当中 二.实现: 1.获取要爬取的URL地址 2.设置headers 3.请求网页内容,把html内容转换成XML 4.解析地址内容 ...

  4. 爬虫入门--爬取就业网站上的岗位信息构造数据集

    爬虫入门--爬取就业网站上的岗位信息.解析爬取的数据构造数据集 爬虫入门实践 爬虫的基本概念 爬虫的技术实现 爬虫入门实践 大家好!随着大数据分析逐渐火热的今天,爬虫技能也成了数据分析师一项不可或缺的 ...

  5. java图片简单爬虫_[Java教程]使用jsoup进行简单的爬虫操作爬取图片

    [Java教程]使用jsoup进行简单的爬虫操作爬取图片 0 2015-12-01 17:00:27 package com.guanglan.util;import java.io.File;imp ...

  6. C++爬虫项目爬取图片

    C++爬虫项目爬取图片, 值得注意的是有些网站的图片爬不来的,有反爬机制,所以一般人爬不下来. 主要代码文件 main.cpp文件里面的代码 #include "CHttp.h" ...

  7. Python 利用百度文字识别 API 识别并提取图片中文字

    Python 利用百度文字识别 API 识别并提取图片中文字 利用百度 AI 开发平台的 OCR 文字识别 API 识别并提取图片中的文字.首先需注册获取 API 调用的 ID 和 key,步骤如下: ...

  8. python怎么爬取b站_【Python爬虫实例学习篇】——4、超详细爬取bilibili视频

    [Python爬虫实例学习篇]--4.超详细爬取bilibili视频 由于经常在B站上学习,但无奈于家里网络太差,在线观看卡顿严重,于是萌生了下载视频的想法(如果只是单纯想下载视频,请用you-get ...

  9. python爬图片代码大全_爬虫入门教程⑩— 用漂亮的图表展示爬取到的数据

    经过了前面的努力,我们成功获取到了数据,并且学会了保存,但是只是用网页展示出来,是不是有一些不够美观呢? 所以本节的内容是:数据的可视化.拿到了数据却不能使其简单易懂并且足够突出,那就是不是好的数据工 ...

最新文章

  1. 科大星云诗社动态20210305
  2. 判断同构数 c语言,基于visual Studio2013解决C语言竞赛题之0413同构数
  3. 基于https国密算法构建安全数据传输链路
  4. 指纹支付为什么没有推广?
  5. 工程勘察设计收费标准2002修订版_2020抚顺花海工程设计收费标准
  6. ES6 class关键字 ~ 非常详细
  7. 51单片机redefinition_关于c51单片机的一个问题
  8. Ajax学习笔记-基础概述-1
  9. 华擎b365m itx 黑苹果_14nm退回22nm:华擎首秀五款B365主板
  10. 分享 上班族兼职项目——存着慢慢看很有用
  11. git pull origin拉取报错 Pulling without specifying how to reconcile divergent branches is
  12. 计算机历史浩荡几十载,细数那些影响时代的人和事
  13. 反射之前奏Oracle升级版
  14. 威廉玛丽学院计算机专业好吗,威廉玛丽学院计算机硕士语言要求请问在哪
  15. 直接下载 * http://softforspeed.51xiazai.cn/down/BaiduNetdisk_6.9.7.4.exe
  16. easyExcel导出文件为空解决
  17. Warning: Failed prop type: The prop 'bounces' is marked as required in 'PagerAndroid', but it's valu
  18. cannot be loaded because running scripts is disabled on this system.
  19. 动态条形图展示人均GDP,最后以gif格式输出
  20. Android的ADB

热门文章

  1. 华为云服务器linux切换账号,华为云Windows服务器如何切换为Linux系统?
  2. 日志库EasyLogging++学习系列(3)—— 配置功能
  3. java applet退出功能_java-如何使用内置在applet中的Button在浏览器中停止applet?
  4. python最长回文子串leetcode_Python版LeetCode5. 最长回文子串
  5. 10拨号拒绝远程连接_ADLS动态拨号vps常见的问题
  6. 学习SOX(1) 在VC中编译
  7. 香帅的北大金融学课笔记11 -- 资产配置
  8. AI理论知识整理(17)-子式,非奇异,可逆
  9. 【时间序列】AR、MA、ARMA与ARIMA
  10. 【NLP】完全解析!Bert Transformer 阅读理解源码详解