爬取网页信息day01

   # -*- coding:gbk -*-

import requests
import io
import sys
import re
sys.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('
(\d+).
.*\n.*?\n.*?title="(.*?)"',html)
for index in number:
print(index)
save(index)

if __name__ == "__main__":
#for i in range(1,6):
spider(1)
运行结果:
爬取网页信息day01_第1张图片

 

 

 

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

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

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

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

 

你可能感兴趣的:(爬取网页信息day01)