python--小爬虫--古诗文
本帖最后由 Dlam万能的猫 于 2022-3-16 12:41 编辑### **学校本学期开了一门爬虫课,老师爬取我们学校官网公告做示例,用到了lxml,requests两个库,今日下午,本人脑海里回荡起一句李白的”长风破浪会有时,直挂云帆济沧海“,就想着找找古诗文来看一看,陶冶一下情操,顺便练习一下刚学的爬虫,也是仅用了lxml,requests两个库,奈何本人基础太差,搞了几个小时才成功。**
### **下面贴出我的代码,大家来看看吧**
```python
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/div/div/div//a/text()")
authors = html_index.xpath("//*[@id='html']/body/div/div/div/div//span/text()")
hrefs = html_index.xpath("//*[@id='html']/body/div/div/div/div//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/div/div/div/div/text()")
shi_str = ''.join(shi)
print(tit_aut_list, shi_str)
i += 1
``` 本帖最后由 surepj 于 2022-3-16 13:45 编辑
我也刚学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[@class="typecont"]/span') # xpath提取标题,链接
for i in titles:# 遍历xpath列表
title = ''.join(i.xpath('.//text()'))# 提取古诗标题
href = "https://so.gushiwen.cn" + i.xpath('.//@href') # 拼接古诗详情链接地址
resp2 = requests.get(url=href,headers=headers)# 请求古诗详情页面,主要拿到古诗内容
html2 = etree.HTML(resp2.text)
content = ''.join(html2.xpath('//div[@id="sonsyuanwen"]/div/div/text()')) # 提取古诗内容
print(title,content) # 打印显示标题和内容
运行效果如下:
行宫(元稹)
寥落古行宫,宫花寂寞红。白头宫女在,闲坐说玄宗。
登鹳雀楼(王之涣)
白日依山尽,黄河入海流。欲穷千里目,更上一层楼。
新嫁娘词(王建)
三日入厨下,洗手作羹汤。未谙姑食性,先遣小姑尝。
... ... 谢谢大佬,学到了很多东西:lol 爬虫是不是很难学习啊? 不错,在学习中巩固。 爬虫是不是很难学习啊? 那个第一个模块lxml是啥 谢谢大佬,学习学习 好像可以简单点,但是我不回 学习一下,感谢分享!!!