小白爬虫入门 | 您所在的位置:网站首页 › 小白盒子使用方法教程图解图片 › 小白爬虫入门 |
使用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/@src1、获取文本— 以第一个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 实验室设备网 版权所有 |