爬取网页信息day01

mac2022-06-30  76

   # -*- coding:gbk -*-

import requestsimport ioimport sysimport resys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030') # 改变标准输出的默认编码def spider(i):#requests.get()用于请求目标网站,类型是一个HTTPresponse类型 response = requests.get("http://bang.dangdang.com/books/fivestars/1-"+str(i)) #访问目标网页 code = response.status_code #获取目标网页的Status Code def save(index):with open("result.txt","a",encoding = "utf-8") as f: f.write(str(index)+"\n") f.close()#判断网页是否正常 if code == 200:print(u"返回200")try: html = response.content.decode('gbk') #获取网页的HTML并转码 except: html = response.content.decode("gbk")#print(html) #通过正则获取想要的内容 number = re.findall('<div class="list_num.*">(\d+).</div>.*\n.*?<img src="(.*?jpg)".*\n.*?title="(.*?)"',html)for index in number:print(index) save(index)if __name__ == "__main__":#for i in range(1,6): spider(1)运行结果:

 

 

 

问题1:定义的save()函数在调用的时候报错未定义:    save(index) NameError: name 'save' is not defined

报错原因:函数声明在了调用之后

解决办法:在使用前定义save()

问题2:注意运行环境编码格式的调整

 

转载于:https://www.cnblogs.com/xiaojingjingzhuanshu/p/11490286.html

最新回复(0)