python答辩心得体会

 这一学期我们的python课又课程设计,得做一个程序然后进行答辩,今天我就在线上进行了答辩,我的选题选的是爬虫,用xpath方法进行爬取百度的图片。我把我的答辩经过和老师提问的问题来大概描述一下

问题1

首先我的老师在爬虫的专业知识上只问了一个headers的用法。我说是一个简单的反爬,要不然浏览器会禁止这个爬虫访问,这个回答有点小问题就是应该是服务器会禁止爬虫去访问而不是浏览器,之后他问了一下这个use_agent在哪里能找到,可能是我在前端方面讲的也多,我甚至写了一个前端的小页面来阐述html的一些知识

问题2

老师还是问了一些基础知识,比如说文件的写入方式,这个真的是好久没有管了然后答的不怎么样

因为我用的是with open来写入文件的,老师问了一个with的用法,它是干什么的,这个属实是知识盲区了 with的作用就是自动调用close()方法

之后老师问了后面的‘wb’是什么意思:以二进制写入文件,还有w之类的大家也可以复习一下

我这里还调用了os模块,在之前的几个同学里也了os模块的几个操作

最后因为线上答辩,只有五个问题,其中三个关于代码的问题,还是可以的,最后附上源码

#导入模块
import requests
import os
from lxml import etree

#利用os模块创建文件
if not os.path.exists("G:\python课程设计\debug"):
    os.mkdir("G:\python课程设计\debug")

url = 'https://pic.netbian.com/4kdongwu/' #获取页面网址
#简单的反爬,使用headers将爬虫伪装起来
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.62'
}
response = requests.get(url=url,headers=headers)#使用request.get方法获取html页面
page_text = response.text           #获取html页面中的文本内容
tree = etree.HTML(page_text)        #调用HTML类对HTML文本进行初始化,成功构造XPath解析对象

li_list = tree.xpath('//div[@class="slist"]/ul/li')    #利用html知识进行定位
for li in li_list :
    img_src = 'http://pic.netbian.com' + li.xpath('./a/img/@src')[0]   #在li标签下再次定位到图片
    img_name = li.xpath('./a/img/@alt')[0] + 'jpg'                     #获取图片名称
    img_name = img_name.encode('iso-8859-1').decode('gbk')             #解决乱码问题
    img_data = requests.get(url=img_src,headers=headers).content       #爬取图片
    img_path ='G:\\python课程设计\\debug\\'+img_name                     #获取图片路径
    with open(img_path,'wb') as fp:                                    #将爬取到的文件写入文件夹
        fp.write(img_data)
        print(img_name,'over'

最后这几天还有线性代数,高等数学,c语言,大学物理。今天刚刚把答辩和思修考完,很忙很忙,原谅更新慢,暑假再肝,谢谢大家支持。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxgbieshuomeibanfa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值