Я многопоточно собираю все языки на которых программировали определенные пользователи, и когда добавляю в список эти языки, тогда языки от одного пользователя попадают к другому пользователю. Пример(пользователь 1 пишет на языках;(Язык 1, язык 2)) и (пользователь 2 пишет на языках;(Язык 3, язык 4) и должно так же выводить, а выводит (пользователь 1 пишет на языках;(Язык 1, язык 2)) и (пользователь 2 пишет на языках;(Язык 1, язык 2,Язык 3, язык 4) Есть идеи как разделить данные?
Python:
import multiprocessing
from bs4 import BeautifulSoup
import re
from array import *
from multiprocessing.dummy import Pool
import requests
from urllib.parse import urljoin
import math as m
import fake_useragent
url_git = 'https://github.com/'
url_reposit = '?tab=repositories'
star = 'stargazers'
page = '?page='
star_user = ['m','MNYudina','Robingood43']
info_userov = []
def search(qi):
global url_git,url_reposit,reposit_star
language_user_star = []
reposit_star = []
user = fake_useragent.UserAgent().random
header = {
'User-Agent': user,
'upgrade-insecure-requests': '1',
'cookie': 'mos_id=CllGxlx+PS20pAxcIuDnAgA=; session-cookie=158b36ec3ea4f5484054ad1fd21407333c874ef0fa4f0c8e34387efd5464a1e9500e2277b0367d71a273e5b46fa0869a; NSC_WBS-QUBG-jo-nptsv-WT-443=ffffffff0951e23245525d5f4f58455e445a4a423660; rheftjdd=rheftjddVal; _ym_uid=1552395093355938562; _ym_d=1552395093; _ym_isad=2'
}
col_vo_reposit_star = ""
full_url_reposit_star = f'{url_git}{qi}{url_reposit}'
html_github12 = BeautifulSoup(requests.get(full_url_reposit_star, headers = header).text,'lxml')
print(full_url_reposit_star)
f2 = html_github12.find('span',{'class': 'Counter'}).attrs['title']
col_vo_reposit_star = f2.replace(',', '')
all_page = m.ceil(int(col_vo_reposit_star)/30)
for col_str_reposit_star in range(all_page):
html_github13 = BeautifulSoup(requests.get(full_url_reposit_star, headers = header).text,'lxml')
for j in html_github13.find_all('a', {'itemprop': re.compile("name codeRepository.*")}):
reposit_star.append(j.get('href'))
if col_str_reposit_star == 1:
for q in html_github13.findAll('a',{'class': re.compile("btn btn-outline BtnGroup-item.*")}):
full_url_reposit_star = q.get("href")
else:
for z in html_github13.findAll('a',{'class': re.compile("btn btn-outline BtnGroup-item.*")}):
full_url_reposit_star = z.get("href")
for i in reposit_star:
reposit = urljoin(url_git,i)
html_github_reposit12 = BeautifulSoup(requests.get(reposit, headers = header).text,'lxml')
for j in html_github_reposit12.find_all('span', {'class': re.compile("color-fg-default text-bold mr-1.*")}):
if j.text not in language_user_star:
language_user_star.append(j.text)
info_userov.append([qi,language_user_star])
def main():
x = multiprocessing.cpu_count()
with Pool(x) as p:
p.map(search, ((check_reposit) for check_reposit in star_user))
print(info_userov)
if __name__ == "__main__":
main()
Последнее редактирование: