Я написал этот код, который должен очищать результаты патентного поиска с веб-сайта ВПТЗ США при наличии списка условий для поиска. Я использую рандомизированный time.sleep, чтобы меня не забанили; однако мой IP-адрес все еще временно блокируется, что приводит к отсутствию результатов. Что еще можно сделать, чтобы меня не остановили?
import pypatent
from selenium import webdriver
import pandas as pd
import re
import time
import numpy as np
dataish = pd.read_csv("trialeer.csv")
symbols_to_keep = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM:;!-,?.@ \n\""
remove_unknown_chars = lambda x: ''.join(char for char in x if char in symbols_to_keep)
def clean_tweets(twoot):
# Convert to lowercase and remove spaces from beginning
twoot = str(twoot).lstrip()
# Remove Twitter-related data
#twoot = remove_user_tags(twoot)
#twoot = remove_urls(twoot)
#twoot = remove_hash_tags(twoot)
# Remove unwanted characters
twoot = remove_unknown_chars(twoot)
# Remove spaces from end and condense multiple spaces into one
twoot = twoot.rstrip()
twoot = re.sub(' +', ' ', twoot)
return twoot
dataish["NER Model"] = dataish["NER Model"].apply(clean_tweets)
list1 = dataish["NER Model"].to_list()
liste2= list(filter(lambda a: a != '', list1))
newlist = []
for element in liste2:
newlist += element.split(',')
newlist = [x.strip() for x in newlist]
def uspatent(x):
driver = webdriver.Chrome('./chromedriver')
conn = pypatent.WebConnection(use_selenium=True, selenium_driver = driver)
x = pypatent.Search(x, results_limit=5, get_patent_details=True, web_connection=conn).as_dataframe()
return x
for item in newlist:
try:
print(uspatent(item))
delays = [7, 4, 6, 2, 10, 19]
delay = np.random.choice(delays)
time.sleep(delay)
except:
pass