爬取数据的数据处理
请求文件的代码展示
这段代码是通过requests请求获取
import requests
from bs4 import BeautifulSoup
# 请求并返回响应内容
def craw(url):
re = requests.get(url)
# print(re.text.encode())
return re
# 传入html格式的参数 获取a标签的所有行 返回2个数据的list[标题,(href,text)]
def parse_list(html):
# /html/body/div[3]/div/dl/dd[13]/a[1]document.querySelector("#list")
soup = BeautifulSoup(html.text, "lxml")
title = soup.text.title().split("《")[1].split("》")[0]
links = soup.find_all("a")
# links = soup.get_text()
# link = links.xpath("/html/body/div[3]/div/dl/dd[13]/a[1]")
return title,[(link["href"], str(link.get_text())) for link in links]
返回回来后进行保存到本地文件
写入数据的时候会乱码 可以看下面的注释内容
import blog_spider # 传入一个列表,列表内都是两个数据的元组 写入txt文件 def write_story(list):
# 注意写入文件如果乱码的话可以把编码方式传入utf-8的编码方式 txt = open(f"{list[0]}_目录.txt", "w",encoding="utf-8") print(list[1]) for link in list[1]:
# 传入的数据一直写入乱码 通过这种方法还有一部分是乱码 所以注意写入文件的编码方式也要留意 # txt.write(link[1].encode('utf-8').decode('gbk', 'ignore')) txt.write(str(link)) txt.write("\n") # 爬取数据 def do_carw(url): html = blog_spider.craw(url) list = blog_spider.parse_list(html) write_story(list) # url是小说圣墟的目录 if __name__ == '__main__': url = f"https://www.xbiquge.so/book/4772/" print(url) do_carw(url)

浙公网安备 33010602011771号