小白爬虫入门

您所在的位置:网站首页 爬虫图片教程 小白爬虫入门

小白爬虫入门

2023-08-07 13:58| 来源: 网络整理| 查看: 265

使用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()

总结

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3