#python #email #web-scraping #python-requests #craigslist
#python #Адрес электронной почты #веб-очистка #python-запросы #craigslist
Вопрос:
Я пытаюсь выяснить, как я могу получить электронную почту или телефон из craigslists с помощью python.
Я использовал python-craigslist для получения сообщения, но я ничего не могу найти относительно электронных писем или другой контактной информации
Я попробовал это:
import requests
url = "https://chandigarh.craigslist.org/reply/ixc/hum/7220389776/mailto"
head = {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8",
"Connection": "keep-alive",
"Content-Length": "344",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"DNT": "1",
"Host": "chandigarh.craigslist.org",
"Origin": "https://chandigarh.craigslist.org",
"Referer": "https://chandigarh.craigslist.org/hum/d/hr-outsourcing-company-in-mohali/7220389776.html",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
post_data = {"n": "U2FsdGVkX184MDg3MTgwOF5nEvY336v771unnxU7b9fc52-DzxhmmxcCYwQ6uylAsvUK2atZ1Ot3zWsSF4ukqvM9BMFMnNA_L00i0jQ5DhiZkfobQq1avkovyPJ3IcQbWM4327VdEQUipMzU6XfOXn5xsLqQ9Tt-L1qJdM55e2Ac11nzeaFCRV7HgpYmmIdrjpESKZpp0dhTh2p5d826f9CSBa4ldNRg0pLswm5P3JXaYGTe4Z7Fe5NB1Jfs3-CBWFdy2ZzqIA345q_YfXUatIMoq1TwN3lc_ee8rKnLKJmQwPHPpLoQHRP9aioeMOBv17okylBLm8uhduZ6HawCRg"}
resp = requests.post(url, headers=head,data= post_data)
print(resp.text)
но ответа нет
Ответ №1:
Ниже приведен мой код, я успешно получил электронное письмо.
-
решение captcha с помощью 2captch
-
отправка решенного ответа captcha для получения следующего токена
-
чем отправлять запрос post с этим токеном в mailto, чтобы получить электронное письмо.
-
Также он использует разные заголовки для каждого запроса, поэтому я жестко запрограммировал разные заголовки для каждого запроса.
resp = r.post(url, headers=head, data=post_data, allow_redirects=True) asd = resp.json() capin = str(asd["nonce"]) print("Capcha In Request Successfull...") solver = TwoCaptcha("API_KEY") try: print("Solving Captcha Using 2Captcha") result = solver.hcaptcha( sitekey='0c3a1de8-e8df-4e01-91b6-6995c4ade451', url=ifram_url ) except Exception as e: print(e) else: captcha = result["code"] print("Captcha Solved Successfully") post_data1 = {"h-captcha-response": str(captcha), "n": capin } url1 = capt_link c_len = len(captcha) len(capin) 22 head1 = { "Accept": "*/*", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8", "Connection": "keep-alive", "Content-Length": str(c_len), "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Cookie": cookie, "DNT": "1", "Host": host, "Origin": origin, "Referer": main_url, "Sec-Fetch-Dest": "empty", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Site": "same-origin", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", "X-Requested-With": "XMLHttpRequest" } resp = r.post(url1, headers=head1, data=post_data1, allow_redirects=True) bsd = resp.json() capout = str(bsd["nonce"]) print("Captcha Out Request Successfull...") c_len1 = len(capout) 2 post_data2 = {"n": capout} url2 = milto_link head2 = { "Accept": "*/*", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8", "Connection": "keep-alive", "Content-Length": str(c_len1), "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Cookie": cookie, "DNT": "1", "Host": host, "Origin": origin, "Referer": main_url, "Sec-Fetch-Dest": "empty", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Site": "same-origin", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", "X-Requested-With": "XMLHttpRequest" } resp = r.post(url2, headers=head2, data=post_data2, allow_redirects=True) defg = resp.json() soup = BeautifulSoup(defg["email"], "html.parser") email = soup.find("input").get("value") print(email) Final_Email.append(email)
Комментарии:
1. эй, Мухаммад, ты можешь прислать мне полный сценарий?
2. Вы можете просмотреть мой GitHub и взять оттуда код спасибо! github.com/rajasaad7/CraigsList-Scrapper
3. привет, Мухаммад, извини, что раздражаю тебя, но я немного изменил твой код, и он не печатает в терминале электронное письмо, он печатает «одноразовый номер». Я просто использую email_grabber.py запустив его непосредственно в терминале. вот код: zerobin.net /…
Ответ №2:
Для очистки Craigslist используйте пакет pyquery Python: https://pypi.python.org/pypi/pyquery
Регулярное выражение для адресов электронной почты / номеров телефонов см. В примерах на этой странице: http://www.regular-expressions.info /
Для хранения адресов электронной почты вы можете просто вывести в csv. Вы можете прочитать о том, как это сделать там: https://docs.python.org/2/library/csv.html
Если вы хотите использовать эти электронные письма и отправлять им сообщения, вы можете проверить это дополнение: https://addons.mozilla.org/en-US/thunderbird/addon/mail-merge /
Также я советую вам оставаться на светлой стороне и читать там больше: http://en.wikipedia.org/wiki/Morality
Комментарии:
1. как работают эти регулярные выражения и как я получу адрес электронной почты?