爬取某类网站并生成csv文件(人民邮电出版社书籍信息)

Qamar ·
更新时间:2024-11-13
· 701 次阅读

import requests #获取网页内容 def get_page(url): #请求头用来表示用户身份的(像上学期的那个就会遇到404的那种情况这里可以解决) headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.9 Safari/537.36'} try: r=requests.get(url,headers=headers) r.raise_for_status()#异常处理,200则为正常 r.encoding='utf-8'#从服务器返回的网页内容猜测编码方式,但是可以查,一般为utf-8 return r.json() except: return "" import pandas as pd def parse_page(data_json): pagebook=data_json['data']['data'] bookdata=[] for j in pagebook: temp={} temp["书名"]=j["bookName"] temp["作者"]=j["author"] temp["ISBN"]=j["isbn"] temp["价格"]=j["price"] bookdata.append(temp) result=pd.DataFrame(bookdata) return result #数据存储 import os def save_file(data_df,filename): #data_df.to_excel("G:\\a大二第二学期\\数据采集与预处理\\作业\\人民邮电出版社新书信息.xlsx",index=False)#index=False表示不到处行序号,而且注意“\\” #print("恭喜你"+filename+"保存成功啦!" ) columns=['书名','作者','ISBN','价格'] if os.path.exists('人民邮电出版社书籍信息.csv'): data_df.to_csv('人民邮电出版社书籍信息.csv',index=False,columns=columns,encoding='gbk',mode='a',header=False) else: data_df.to_csv('人民邮电出版社书籍信息.csv',index=False,columns=columns,encoding='gbk',header=True) print("恭喜你"+filename+"保存成功啦!" ) #主函数 if __name__ == '__main__': url='https://www.ptpress.com.cn/bookinfo/getBookListForWSNewBook?rows=9&' begin=int(input("请输入开始爬取的页码:")) end=int(input("请输入结束爬取的页码:")) for i in range(begin,end+1): full_url=url+'page={}'.format(i) filename='第{}页'.format(i) html=get_page(full_url) allbookdata=parse_page(html) save_file(allbookdata,filename)
作者:易烊千玺的程序猫



csv文件 书籍 csv

需要 登录 后方可回复, 如果你还没有账号请 注册新账号