Advertisement
Guest User

Untitled

a guest
Oct 2nd, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. import mechanicalsoup
  2. import csv
  3.  
  4. username = ""
  5. password = ""
  6.  
  7. browser = mechanicalsoup.Browser()
  8.  
  9. login_page = browser.get("")
  10.  
  11. login_form = login_page.soup.select("#UserLoginForm")[0]
  12.  
  13. login_form.select("#UserEmail")[0]['value'] = username
  14. login_form.select("#UserPassword")[0]['value'] = password
  15.  
  16. home_page = browser.submit(login_form, login_page.url)
  17.  
  18. stack = []
  19.  
  20. for x in range(30,35):
  21. url = ""
  22. project_page = browser.get(url)
  23.  
  24. try:
  25. name = project_page.soup.find("div", class_="project-name").find("h2").text
  26. except:
  27. continue
  28.  
  29. try:
  30. scope = project_page.soup.find("div", class_="project-inner-table").find("table").find("span").find("p").text
  31. except:
  32. scope = ""
  33.  
  34. try:
  35. continent = project_page.soup.find("div", class_="project-inner-table").find("div").find("table").findAll("td")[1].contents[2][2:]
  36. except:
  37. continent = ""
  38.  
  39. try:
  40. region = project_page.soup.find("div", class_="project-inner-table").find("div").find("table").findAll("td")[1].contents[5][2:]
  41. except:
  42. region = ""
  43.  
  44. try:
  45. country = project_page.soup.find("div", class_="project-inner-table").find("div").find("table").findAll("td")[1].contents[8][2:]
  46. except:
  47. country = ""
  48.  
  49. try:
  50. province = project_page.soup.find("div", class_="project-inner-table").find("div").find("table").findAll("td")[1].contents[11][2:]
  51. except:
  52. province = ""
  53.  
  54. try:
  55. city = project_page.soup.find("div", class_="project-inner-table").find("div").find("table").findAll("td")[1].contents[14][2:]
  56. except:
  57. city = ""
  58.  
  59. try:
  60. value = project_page.soup.find("div", class_="right-side").find("table").findAll("tr")[0].contents[3].contents[1].find("td").find("span").text
  61. except:
  62. value = ""
  63.  
  64. try:
  65. date = project_page.soup.find("div", class_="right-side").find("table").findAll("tr")[0].contents[3].findAll("td")[2].text
  66. except:
  67. date = ""
  68.  
  69. try:
  70. mineral = " ".join(project_page.soup.find("div", class_="right-side").find("table").findAll("tr")[2].findAll("td")[1].text.split())
  71. except:
  72. mineral = ""
  73.  
  74. try:
  75. mining_type = " ".join(project_page.soup.find("div", class_="right-side").find("table").findAll("tr")[5].findAll("td")[1].text.split())
  76. except:
  77. mining_type = ""
  78.  
  79. data = {}
  80. data['id'] = x
  81. data['name'] = name
  82. data['scope'] = scope
  83. data['continent'] = continent
  84. data['region'] = region
  85. data['country'] = country
  86. data['province'] = province
  87. data['city'] = city
  88. data['value'] = value
  89. data['date'] = date
  90. data['mineral'] = mineral
  91. data['mining_type'] = mining_type
  92.  
  93. stack.append(data)
  94.  
  95. with open('export.csv', 'w') as f:
  96. w = csv.DictWriter(f, stack[0].keys())
  97. w.writeheader()
  98. for y in len(stack):
  99. w.writerow(stack[y])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement