Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.58 KB | None | 0 0
  1. import requests
  2. from lxml import html
  3. q = input('Введите запрос ').split()
  4. urst = "https://github.com" # стартовая страница
  5. ur = "" # строка вывода
  6.  
  7. def search(): #функция составления запроса
  8. df2_1 = "/search?o=desc&q=" #первая прибавляемая часть запроса по дефолту
  9. df2_2 = "&s=stars&type=Repositories" #вторая прибавляемая часть запроса по дефолту
  10. l = [] #список для разбиения строки на слова
  11. for i in q: #цикл добавления слов в список
  12. l.append(i)
  13. if len(l) > 1: #если длинна l больше одного, то
  14. ur = urst + df2_1
  15. while l != []: #пока l не равен пустому списку
  16. ur += l[0] #составление ссылки
  17. ur += "+"
  18. del l[0]
  19. ur = ur[0:-1] #удаление лишнего плюса
  20. ur += df2_2
  21. else:
  22. ur = urst + df2_1 + l[0] + df2_2 #готовая ссылка
  23. return ur
  24.  
  25. sp = [] #список с названиями репозиториев
  26. stt = "" #вспомогательная строка для составления списка названий репозиториев
  27. sk = "" #строка ссылок на репозитории
  28. page = requests.get(search())
  29. tree = html.fromstring(page.content)
  30. xp1 = tree.xpath("*//a[@class ='v-align-middle']/..") #xpath выражение для поиска названий
  31. for x in xp1:
  32. stt = x[0].attrib['href'] #в спомогательную строку записываеться название
  33. sp.append(stt)
  34. for i in sp: #формирование ссылок
  35. sk = urst + i
  36. print(sk)
  37. print(sp)
  38. #все это в цикл до 10
  39. for name in sp:
  40. wrep = [] #список для хранения занчений просмоторв, звезд и вилок
  41. pagerep = requests.get(urst+ "/" +name) #составляем ссылку
  42. treerep = html.fromstring(pagerep.content)
  43. xp2 = treerep.xpath("*//a[@class ='social-count']/..") #находим просмотры и вилки
  44. for i in xp2:
  45. wrep.append(int(str(i[1].text).replace(",", "").strip())) #добавляем их int значение в список
  46. xp3 = treerep.xpath("*//a[@class ='social-count js-social-count']/..") #находим звезды
  47. for j in xp3:
  48. wrep.append(int(str(j[1].text).replace(",", "").strip())) #добавляем из int значение в список
  49. print(wrep)
  50.  
  51. comm = []
  52. pagecom = requests.get(urst + "/" + name)
  53. treecom = html.fromstring(pagecom.content)
  54. xp4 = treecom.xpath("//div[@class = 'stats-switcher-wrapper']/..") #поиск ссылки на коммиты
  55. for h in xp4:
  56. comm.append(h[0][0][0][0].attrib['href'])
  57. print(comm)
  58.  
  59. #это в цикл до 100
  60. for commit in comm:
  61. commitdate = [] #список для дат коммитов
  62. pagecommit = requests.get(urst + commit) #составляем ссылку на коммиты
  63. #print(urst + commit)
  64. treecommit = html.fromstring(pagecommit.content)
  65. #ищем дату коммита
  66. xp6 = treecommit.xpath("*//relative-time['datetime']/..")
  67. for q in xp6:
  68. if 'href' in q[1].attrib:
  69. commitdate.append(q[2].text)
  70. else:
  71. commitdate.append(q[1].text)
  72. print(commitdate)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement