吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3834|回复: 23
收起左侧

[Python 转载] python--小爬虫--古诗文

[复制链接]
Dlam万能的猫 发表于 2022-3-15 22:14
本帖最后由 Dlam万能的猫 于 2022-3-16 12:41 编辑

学校本学期开了一门爬虫课,老师爬取我们学校官网公告做示例,用到了lxml,requests两个库,今日下午,本人脑海里回荡起一句李白的”长风破浪会有时,直挂云帆济沧海“,就想着找找古诗文来看一看,陶冶一下情操,顺便练习一下刚学的爬虫,也是仅用了lxml,requests两个库,奈何本人基础太差,搞了几个小时才成功。

下面贴出我的代码,大家来看看吧

import lxml.html
import requests

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
}

url = 'https://so.gushiwen.cn/gushi/tangshi.aspx'
response = requests.get(url, headers=headers)
html_index = lxml.html.fromstring(response.text)
titles = html_index.xpath("//*[@id='html']/body/div[2]/div[1]/div[2]/div[1]//a/text()")
authors = html_index.xpath("//*[@id='html']/body/div[2]/div[1]/div[2]/div[1]//span/text()")
hrefs = html_index.xpath("//*[@id='html']/body/div[2]/div[1]/div[2]/div[1]//a/@href")

tit_aut_list = [(title + author) for title, author in zip(titles, authors)]

i = 0
for href in hrefs:
    all_href = "https://so.gushiwen.cn" + href
    response1 = requests.get(all_href, headers=headers)
    html_text = lxml.html.fromstring(response1.text)
    shi = html_text.xpath("/html/body/div[2]/div[1]/div[2]/div[1]/div[2]/text()")
    shi_str = ''.join(shi)
    print(tit_aut_list[i], shi_str)
    i += 1




运行.png


免费评分

参与人数 3吾爱币 +6 热心值 +3 收起 理由
52shine + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
XINJIAN9 + 1 谢谢@Thanks!

查看全部评分

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

surepj 发表于 2022-3-16 13:43
本帖最后由 surepj 于 2022-3-16 13:45 编辑

我也刚学Python,也写了个,大家看看:
[Python] 纯文本查看 复制代码
import requests
from lxml import etree

url = 'https://so.gushiwen.cn/gushi/tangshi.aspx'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36',
    'referer': 'https://so.gushiwen.cn/gushi/tangshi.aspx'
}

resp = requests.get(url, headers=headers) # 第一次请求,主要拿到标题和详情链接列表
html = etree.HTML(resp.text)
titles = html.xpath('//div[1][@class="typecont"]/span') # xpath提取标题,链接
for i in titles:  # 遍历xpath列表
    title = ''.join(i.xpath('.//text()'))  # 提取古诗标题
    href = "https://so.gushiwen.cn" + i.xpath('.//@href')[0] # 拼接古诗详情链接地址
    resp2 = requests.get(url=href,headers=headers)  # 请求古诗详情页面,主要拿到古诗内容
    html2 = etree.HTML(resp2.text)
    content = ''.join(html2.xpath('//div[@id="sonsyuanwen"]/div/div[2]/text()')) # 提取古诗内容
    print(title,content) # 打印显示标题和内容

运行效果如下:
[Asm] 纯文本查看 复制代码
行宫(元稹) 
寥落古行宫,宫花寂寞红。白头宫女在,闲坐说玄宗。

登鹳雀楼(王之涣) 
白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

新嫁娘词(王建) 
三日入厨下,洗手作羹汤。未谙姑食性,先遣小姑尝。

... ...
头像被屏蔽
52shine 发表于 2022-3-16 08:31
Triple.J 发表于 2022-3-15 23:49
wsong76 发表于 2022-3-16 00:06
爬虫是不是很难学习啊?
bennyt 发表于 2022-3-16 01:42
不错,在学习中巩固。
小亮丶1 发表于 2022-3-16 07:18
爬虫是不是很难学习啊?
Dream0408 发表于 2022-3-16 09:05
那个第一个模块lxml是啥
anlimer 发表于 2022-3-16 09:13
谢谢大佬,学习学习
DS777 发表于 2022-3-16 10:46
好像可以简单点,但是我不回
傲天越 发表于 2022-3-16 10:59
学习一下,感谢分享!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 07:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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