小白html图片添加文字,小白爬虫入门——爬取图片和文字(超详细)
使用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图片添加文字,小白爬虫入门——爬取图片和文字(超详细)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wkwebview html5页面,iO
- 下一篇: html div剩下高度设置,使div填