Python数据存储:保存知乎上“发现”页面的“热门话题”部分为TXT文本

今天我学到Python的数据存储,所以就不从头开始写了。

首先用requests将网页源代码获取下来,然后用pyquery解析库解析,最后将提取提取的标题、回答者、回答内容保存为TXT文本。

代码如下:

'''
数据存储,利用pyquery解析库
爬去知乎“发现”页面上“热门话题”部分
'''
import requests,docx
from pyquery import PyQuery as pq
url='https://www.zhihu.com/explore'
headers={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
}
def get_page(url,headers):

    html=requests.get(url,headers=headers).text
    #实例化pyquery对象
    doc=pq(html)
    #找到所有class属性值是explore-tab和feed-item的节点。调用items()方法得到一个生成器来遍历
    items=doc('.explore-tab .feed-item').items()
    for item in items:
        #获取问题,用text()方法得到纯文本内容
        #find()方法查找所有符合条件的子孙节点
        question=item.find('h2').text()
        #获取回答者的姓名
        author=item.find('.author-link-line').text()
        #获取回答的内容。由于回答问题的内容中有很多HTML代码,所以先用pq将代码解析后,再输出纯文本内容
        #html()方法是得到节点内部的HTML文本,pq负责解析
        answer=pq(item.find('.content').html()).text()
        save_file(question,author,answer)


def save_file(question,author,answer):
    with open('zhihuone.txt','a',encoding='utf-8') as f:
        f.write('\n'.join([question,author,answer]))
        f.write('\n'+'='*50+'\n')


if __name__=='__main__':
    get_page(url,headers)

总结:此段代码用到了requests请求,pyquery解析,和TXT存储等内容。应重点掌握对pyquery解析库的使用和文本存储的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值