因在数据爬取过程中存在网络波动的问题,导致部分网站文本需要重新爬取。这里的思路是根据文件内存进行判定,即若文件内存过小,则执行重新爬取程序。
为了避免潜在的法律和版权风险,此贴仅供交流学习使用。
先呈现一下WSJ全文的文件夹,以便更好地把握数据存储结构。
导入包
import os
import threading
from threading import Thread
import requests
from requests.exceptions import TooManyRedirects
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
遍历文件夹,获取文件名和所有文件的内存
namelist = [] #生成一个文件名的列表
for i in range(1998,2023): #这里我需要爬取的是1998-2022年的数据
namelist.append(str(i))
# 思路是筛选出文件大小小于等于200个字节的文件,重新生成链接,然后爬取
class get_filename():
def __init__(self,name): #读取name路径下所有的文件名
self.path = os.listdir(r'/Users/xxx/Desktop/WSJ-RE/raw_data/'+str(name)) #这里是之前爬取所有文章文件的路径
self.name = name
def main(self): #遍历文件夹
lis = []
for i in self.path:
file_path = '/Users/xxx/Desktop/WSJ-RE/raw_data/'+str(self.name)+