使用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. Python 之 matplotlib (十三) subplot分格显示
  2. Java 编程的动态性,第 7 部分: 用 BCEL 设计字节码--转载
  3. openssl与cryptoAPI交互AES加密解密
  4. js中const,var,let区别与用法
  5. 特征权重量化 TF-IDF 用于信息检索和数据挖掘的加权技术
  6. leetcode 228. 汇总区间
  7. 初学者选黑卡还是微单_3500以内的微单相机好用吗?值得初学者入手吗?
  8. 如何在QQ浏览器查看默认搜索引擎
  9. boootstap-面包屑-下拉菜单
  10. ps3存档是php文件,PS3存档修改图文详细全教程
  11. asp.net core 系列 19 EFCore介绍
  12. likely,unlikely宏与GCC内建函数__builtin_expect()
  13. 【图像配准】基于matlab GUI光流场模型医学图像配准【含Matlab源码 747期】
  14. java 蓝牙串口_java_android_0057 蓝牙串口助手源码
  15. Qos服务质量与IntServ和DiffServ
  16. vdi虚拟服务器,VMware VDI部署攻略之三:VDI安装及配置
  17. 工作日志之误用篇 工作日志之目的
  18. 122全国交通安全日
  19. python处理excel和word文档
  20. 前端开发问题——css设置背景样式效果无法显现

热门文章

  1. VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下
  2. 计算机社团发展目标,计算机社团工作计划
  3. mysql5.7.19 创建用户_mysql5.7.19用户的创建和权限的操作
  4. 出席全球数字经济大会 第四范式助力打造中国数字经济“北京样板”
  5. vb.net2019- 机器学习ml.net情绪分析(2)
  6. 【机器学习】太赞了!几行代码实现30多种时序模型预测
  7. 【CV】语义分割:最简单的代码实现!
  8. 【学术相关】这个英文语法校正插件很赞!可以校正邮件,也可以校正论文
  9. 【机器学习】基于LightGBM算法实现数据挖掘!
  10. 再降64%,3.5M超轻量中英文OCR模型开源,身量缩减效果提升v4.1