吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4100|回复: 25
收起左侧

[Python 转载] 自学了一段时间Python,闲来无事爬了本《西游记》给大家分享下

[复制链接]
kaixin365days 发表于 2020-6-19 14:24
本帖最后由 kaixin365days 于 2020-6-19 14:34 编辑

运行没有问题,加注释就容易出错
[Python] 纯文本查看 复制代码
import requests
import os,time
from lxml import etree
from fake_useragent import UserAgent

def get_html(url):
    ua = UserAgent()
    headers = {'UserAgent': ua.random}
    response = requests.get(url,headers=headers)
    response.encoding = response.apparent_encoding
    return response

def be_tree(url):
    r = get_html(url)
    tree = etree.HTML(r.text)
    return tree

def get_mulu_lists(mulu_url):
    tree = be_tree(mulu_url)
    novel_name = tree.xpath('//h1/span[1]/b/text()')[0]
    cha_urls = tree.xpath('//ul/span/a/@href')
    titles = tree.xpath('//ul/span/a/text()')
    return novel_name,titles,cha_urls

def down_onechapter(novel_name,down_url):
    tree = be_tree(dow_url)
    datas = tree.xpath('//div[1]/div/p/text()')
    for data in datas:
        with open(f'./{novel_name}.txt','a',encoding='utf-8')as f:
            f.write(data)
#写入2行空字符,以便章节内容排版
    with open(f'./{novel_name}.txt', 'a', encoding='utf-8')as f:
        f.write('\n')
        f.write('\n')
    print('下载完成')

if __name__ == '__main__':
    start = time.time()
    # 西游记目录,其他书籍替换链接即可
    url = 'https://so.gushiwen.cn/guwen/book_46653FD803893E4FBF8761BEF60CD7D9.aspx'
    base_url =url.split('/guwen')[0]
    novel_name, titles, cha_urls = get_mulu_lists(url)
    for title,cha_url in zip(titles,cha_urls):
        dow_url = base_url + cha_url
        print(title,dow_url)
        with open(f'./{novel_name}.txt','a',encoding='utf-8')as f:
            f.write(title)
            f.write('\n')
        down_onechapter(novel_name,dow_url)
        print('全本下载完成')
    end = time.time()
    use_time = int(end) - int(start)
    print(f'下载耗时{use_time}秒')

免费评分

参与人数 2吾爱币 +6 热心值 +2 收起 理由
404错误 + 1 + 1 6666
苏紫方璇 + 5 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| kaixin365days 发表于 2020-7-2 21:37
于生 发表于 2020-7-2 21:28
好的,我现在在论坛找爬虫的视频在看。太多了,也不知道哪个比较基础,适合我这个新手看

我是先看了数据类型,数据基本操作,函数,再就是用模块爬个网页试试,慢慢碰到问题就网上搜资料,看介绍,多练习,共同进步吧
 楼主| kaixin365days 发表于 2020-6-23 12:01
Simonl 发表于 2020-6-21 16:45
加注释怎么会出错呢,注释都不参与执行

我刚开始把注释写到代码后面了,如“print(name) #输出name”这样就会有错误,后来把注释单独成行就好了。感觉可能是注释打乱了代码格式,导致执行出错
叶凯 发表于 2020-6-19 14:27
学多久能出师,会前端和php,也想学下python爬些一些数据
 楼主| kaixin365days 发表于 2020-6-19 14:36
叶凯 发表于 2020-6-19 14:27
学多久能出师,会前端和php,也想学下python爬些一些数据

我也没出师呢,自己选了些教程看,多写,多交流共同进步
zdnyp 发表于 2020-6-19 14:43
3.6以上版本才能运行
Zeaf 发表于 2020-6-19 14:53
加注释容易错可还行
mihacker 发表于 2020-6-19 14:53
生成的文本好大  ~~~
gdp123gd 发表于 2020-6-19 15:07
加注释会出错的话,注意下运行环境,有可能是运行环境不支持中文
吾爱不再 发表于 2020-6-19 15:21
多谢分享!支持一下!
 楼主| kaixin365days 发表于 2020-6-19 15:40
gdp123gd 发表于 2020-6-19 15:07
加注释会出错的话,注意下运行环境,有可能是运行环境不支持中文

语句后面#加中文注释会出错,把#注释单独成行就没有问题了
 楼主| kaixin365days 发表于 2020-6-19 15:44
zdnyp 发表于 2020-6-19 14:43
3.6以上版本才能运行

我用的是python3.6版本,PyCharm 2020.1.1 x64版本
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表