爬取数据的数据处理

请求文件的代码展示

这段代码是通过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)

 

posted @ 2022-04-27 11:19  哇!彦祖  阅读(138)  评论(0)    收藏  举报