получение электронной почты или другой контактной информации из craigslist с помощью запроса python

#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:

Ниже приведен мой код, я успешно получил электронное письмо.

  1. получение электронной почты iframдля получения этой ссылки введите описание изображения здесь

  2. решение captcha с помощью 2captch

  3. отправка решенного ответа captcha для получения следующего токена

  4. чем отправлять запрос post с этим токеном в mailto, чтобы получить электронное письмо.

  5. Также он использует разные заголовки для каждого запроса, поэтому я жестко запрограммировал разные заголовки для каждого запроса.

     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. как работают эти регулярные выражения и как я получу адрес электронной почты?