运用正则表达式极简代码爬取古诗信息(主要是练习正则表达式,很多后续的功并没有实现)
我们先看一下结果:注:只是截取了一部分结果
我们直接上代码:
import re
import requestsdef parse_url(url):headers={'User-Agent':'此处需要替换成你本机的'}reponse = (url, headers= headers)text = # print(text)titles = re.findall(r'<divsclass="cont">.*?<b>(.*?)</b>',text,re.DOTALL)# print(titles)authors = re.findall(r'<psclass="source">.*?<a .*?>(.*?)</a>',text,re.DOTALL)# print(authors)dynasties = re.findall(r'<psclass="source">.*?<a .*?>.*?<a .*?>(.*?)</a>',text,re.DOTALL)# print(dynasties)contents = re.findall(r'<divsclass="contson".*?>(.*?)</div>',text,re.DOTALL)# print(contents)All_contents=[] # 定义一个空列表for i in contents:content = re.sub(r'<.*?>', " ", i)All_contents.append(content.strip())# print(All_contents)poems=[] # 定义一个空列表for value in zip(titles, authors, dynasties, All_contents):# 将这四个列表中的每一项分别一一对应title,author,dynasty,content = value # 将value里面的每一项赋予名字poem={'title':title,'author':author,'dynasty':dynasty,'content':content}poems.append(poem) # 将poem追加到poems中print(poems)def main():for i in range(1,5):url = '{}.aspx'.format(i)parse_url(url)if __name__ == '__main__':main()
注:中间代码没有问题哦!
本文发布于:2024-02-04 03:37:54,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170698926552118.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |