gpt4 book ai didi

python - 为什么给我这个错误 :TypeError: cannot pickle '_io.TextIOWrapper' object?

转载 作者:行者123 更新时间:2023-12-04 09:29:30 27 4
gpt4 key购买 nike

我正在尝试使用多处理,其想法是从 Bing 搜索的结果中获取链接,但使用 selenium 更改其中一种配置(cep 配置)。我有一个列表 (filecep) 中的所有 cep,我想将所有结果写入 csv 文件。
这是我的 getUrlCleans 函数:

def getUrlCleans(search):


driver = webdriver.Firefox()

f = open('out/'+str(date.today())+'.csv','w')
f.write('url,cep')
f.write('\n')

url_cleans=[]

pool=mp.Pool(mp.cpu_count())
pool.starmap(getUrlbyCEP,[(cep,driver,search,f) for cep in filecep])
pool.close()
f.close()
这是我的 getUrlbyCEP 函数:
def getUrlbyCEP(cep,driver,search,f):

driver.get('https://www.bing.com/account/general?ru=https%3a%2f%2fwww.bing.com%2f%3fFORM%3dZ9FD1&FORM=O2HV65#location')


cepInput = driver.find_element_by_id('geoname')
cepInput.clear()
cepInput.send_keys(cep)
time.sleep(0.5)
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")


saveButon=driver.find_element_by_id('sv_btn')
saveButon.click()




try:
driver.find_element_by_id('geoname')
# continue
except:
pass

searchInput=driver.find_element_by_id('sb_form_q')
searchInput.send_keys(search)

driver.find_element_by_id('sb_form_q').send_keys(Keys.ENTER)
time.sleep(0.5)

url_cleans=[]

for i in range(2):

url_cleans=getLinks(driver,url_cleans)
time.sleep(2)
driver.find_element_by_xpath('//*[@title="Próxima página"]').click()
url_cleans=getLinks(driver,url_cleans)
for u in url_cleans:
f.write(u+','+cep)
f.write('\n')


最后我打电话
getUrlCleans('sulamerica')
ang 它给了我错误......我不知道为什么?

最佳答案

因此,我没有使用多处理,而是使用了线程并且它起作用了。这是我改变的,而不是:

pool=mp.Pool(mp.cpu_count())
results = pool.starmap(getUrlbyCEP,[(cep,driver,search,f) for cep in filecep])
从多处理库(mp),我使用了这个:
from multiprocessing.dummy import Pool as ThreadPool    
pool = ThreadPool(4)
results = pool.map(f_partial, filecep)

关于python - 为什么给我这个错误 :TypeError: cannot pickle '_io.TextIOWrapper' object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62903886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com