سوال از یک پروژه وب اسکرپینگ برای سایت دیوار

سوال

سلام

من یه پروژه وب اسکرپینگ می خوام انجام بدم برای سایت دیوار که به این صورته که اول برنامه باید یه کلمه از کاربر بگیره(مثلا منزل فروشی) بعد توی سایت دیوار سرچ کنه(کد این قسمت نمیدونم چجوری بزنم) بعدش مشخصات ۲۰ تا آگهی اول بگیره و توی یه فایل اکسل ذخیره کنه. مشکل من اینجاست که اولا همونطوری که بالا گفتم نمیدونم برای سرچ یه کلمه که از کاربر گرفته میشه توی سایت چه کدی باید بزنم و دوما اینکه نمیدونم باید یو آر ال اولین صفحه ای که با سرچ کلمه کاربر بالا میاد که همون لیست آگهی ها هستش بزنم یا نه بعد از اینکه صفحه سرچ بالا اومد وارد اولین آگهی بشم و یو آر ال اون صفحه رو بزنم(البته چون ریز اطلاعات آگهی مثلا مثل قیمت و متراژ و اطلاعات تماس و… اینارو میخواد صد در صد اطلاعات حالت دومی که گفتم رو باید استخراج کنم ولی نمیدونم چجوری باید یه کد بنویسم که بعد از اینکه کاربر کلمه شو سرچ کرد و صفحه آگهی ها بالا اومد بره توی یه آگهی خاص و ریز اطلاعات اونو دربیاره)

ممنون میشم اگه راهنماییم کنین

در حال بررسی 0
paniz.1 10 ماه 1 پاسخ 94 دیده شده 0

پاسخ ( ۱ )

  1. keyword = input(“Enter a keyword to search: “)

    import requests

    url = ‘https://divar.ir/s/tehran/real-estate’
    params = {‘q’: keyword}
    response = requests.get(url, params=params)

    if response.status_code == 200:
    html = response.text
    else:
    print(“Error: could not retrieve search page”)

    from bs4 import BeautifulSoup
    import pandas as pd

    soup = BeautifulSoup(html, ‘html.parser’)

    ads = soup.find_all(‘div’, {‘data-cy’: ‘search_result_ad_card’})
    data = []
    for ad in ads[:20]:
    title = ad.find(‘div’, {‘class’: ‘title’}).text.strip()
    price = ad.find(‘div’, {‘class’: ‘price’}).text.strip()
    phone = ad.find(‘a’, {‘class’: ‘contact-button’}).get(‘href’)[4:]
    data.append([title, price, phone])

    df = pd.DataFrame(data, columns=[‘Title’, ‘Price’, ‘Phone’])
    df.to_excel(‘results.xlsx’, index=False)

    ad_url = ‘https://divar.ir’ + ads[0].find(‘a’).get(‘href’)
    response = requests.get(ad_url)

    if response.status_code == 200:
    ad_html = response.text
    else:
    print(“Error: could not retrieve ad page”)

    ad_soup = BeautifulSoup(ad_html, ‘html.parser’)
    location = ad_soup.find(‘div’, {‘class’: ‘breadcrumb’}).text.strip()
    description = ad_soup.find(‘div’, {‘class’: ‘description’}).text.strip()

ارسال یک پاسخ