Python07,爬去百度贴吧小说并下载到本地。-open函数,css选择器

在实际操作的时候,遇到了两个小难点。
1,soup.select的时候,没太好定位。于是复习了一下css选择器的知识。最终结局了。
2,open函数的使用!没想到可以用open函数来下载文件到本地!

以下程序能够正常运行,不过,也发现了几点不足之处。

前言,成功将百度贴吧的小说下载到本地,并且以txt的格式进行了保存,不过还有几次不够完美地方,需要我去修改和完善。
第一,下载到本地的txt文本,保存到本地的时候,是与对应的.py文件保存到同一个文件夹的,造成比较混乱。能不能用open函数或者其他方法把小说文件
保存到指定的文件夹目录下呢?
第二,用for遍历下载的时候,每个小说文件名字不能相同,怎么才能让名字更好看一些?
第三,每个下载的txt文件中,汉子段落都是乱的,怎么才能让它在下载的本地的时候就是摆好的呢?
第四, #当用open函数,以.txt文件结尾的时候,是可以储存并打开的。但是将参数,设置成.docx的时候,是没办法用word文件打开的,为何?

代码如下:

#!/usr/bin/env python
#-*- coding: utf-8 -*-

#爬去百度贴吧小说,并且以text格式保存到本地,联系一下保存数据。

import requests
from bs4 import BeautifulSoup
url = 'http://tieba.baidu.com/p/4944407708?see_lz=1'
headers = {
    'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36 QQBrowser/4.1.4132.400'
}

wb_data = requests.get(url,headers=headers) #必须加一个headers参数,因为没加之前,测试程序的时候被百度限制了。
soup = BeautifulSoup(wb_data.text,'lxml')

#content = soup.select('#post_content_102764747601')  #这是默认的内容,由于数字是变化的,所以不能批量抓取页面下所有小说的内容!跟我之前遇到的情况不一样,要复杂一些。
content2 = soup.select('.j_d_post_content')   #看了一下css选择器的知识,发现用class属性进行查找确定更准确,左边的已经成功。
t=1
for i in content2:
    y = i.text
    with open('小说 %s' %t + '.docx','w') as f:
    #当用open函数,以.txt文件结尾的时候,是可以储存并打开的。但是将参数,设置成.docx的时候,是没办法用word文件打开的,为何?
        t=t+1
        f.write(y)
        print('ok')
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容