第十周总结(2024.9.7)

保存文件时候会报错 “FileNotFoundError:No such file or directory”

Python 在保存文件时,如果路径下你要操作的文件不存在,它会自动创建一个文件,然后写入数据。

但是,如果是路径中的文件夹不存在,则不会自动创建,而是会报错上面那样的错误。只是你的路径中没有对应的文件夹而已,缺哪个文件夹,自己手动创建好,再运行就好啦。也可以用下列代码自己创建

import os
# 如果没有该文件夹,则自动生成
if not os.path.exists(path):
    os.makedirs(path)
爬取得到的HTML在一行显示

html = html.decode()

爬取当当网

import requests
from lxml import etree
import csv
 
# 请求URL
url = '<http://search.dangdang.com/?key=Python&act=input>'
# 请求头部
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
 
# 解析页面函数
def parse_html(html):
selector = etree.HTML(html)
book_list = selector.xpath('//*[@id="search_nature_rg"]/ul/li')
for book in book_list:
title = book.xpath('a/@title')[0]
link = book.xpath('a/@href')[0]
price = book.xpath('p[@class="price"]/span[@class="search_now_price"]/text()')[0]
author = book.xpath('p[@class="search_book_author"]/span[1]/a/@title')[0]
publish_date = book.xpath('p[@class="search_book_author"]/span[2]/text()')[0]
publisher = book.xpath('p[@class="search_book_author"]/span[3]/a/@title')[0]
yield {
'书名': title,
'链接': link,
'价格': price,
'作者': author,
'出版日期': publish_date,
'出版社': publisher
}
 
# 保存数据函数
def save_data():
f = open('dangdang_books.csv', 'w', newline='', encoding='utf-8-sig')
writer = csv.writer(f)
writer.writerow(['书名', '链接', '价格', '作者', '出版日期', '出版社'])
response = requests.get(url, headers=headers)
for item in parse_html(response.text):
writer.writerow(item.values())
f.close()
 
if __name__ == '__main__':
save_data()

 

 

posted @ 2024-09-02 09:11  记得关月亮  阅读(16)  评论(0编辑  收藏  举报