Issue
I used bs4 methods
here is a link to an item on the website haraj
soup.select_one('.postWrapper .postMain .details .post_body .post_extra_info .contact a')
and
soup.find('span', {'class', 'contact'})
but it wouldn't get it any help is appreciated thanks
Solution
You've to communicate with the API
directly, since the page is rendered via JavaScript
where it's call the backend API
in order to fetch the content.
import requests
# https://haraj.com.sa/1179070147
def main(url):
params = {
'queryName': 'postLikeInfo,postContact',
'token': '',
'clientid': '812f41b2-9936-4405-aa9c-378db19b8cc4',
'version': '8.2.9 , 10 18 - 7 - 21'
}
data = {
"query": "query postLikeInfo_postContact($id: Int!, $token: String,$postId: Int!) {\n\t\t\n\t\tpostLikeInfo(id: $id, token: $token)\n\t\t{ \n isLike\n total\n isFollowing\n }\n\t\n\r\n\t\tpostContact(postId: $postId)\n\t\t{ \n contactText\n contactMobile\n }\n\t\n\t}",
"variables": {
"id": 79070147,
"postId": 79070147,
"token": ""
}
}
r = requests.post(url, params=params, json=data)
print(r.json()['data']['postContact']['contactMobile'])
main('https://graphql.haraj.com.sa/')
Output:
+966536010587
Also in order to parse the full Ads, follow the below call:
import requests
# https://haraj.com.sa/1179070147
def main(url):
params = {
'queryName': 'detailsPosts_singlePost',
'token': '',
'clientid': '812f41b2-9936-4405-aa9c-378db19b8cc4',
'version': '8.2.9 , 10 18 - 7 - 21'
}
data = {
"query": "query($ids:[Int]) { posts( id:$ids) {\n\t\titems {\n\t\t\tid status authorUsername title city postDate updateDate hasImage thumbURL authorId bodyHTML bodyTEXT city tags imagesList commentStatus commentCount upRank downRank geoHash\n\t\t}\n\t\tpageInfo {\n\t\t\thasNextPage\n\t\t}\n\t\t} }",
"variables": {
"ids": [
79070147
]
}
}
r = requests.post(url, params=params, json=data)
print(r.json())
main('https://graphql.haraj.com.sa/')
Output:
{
"data":{
"posts":{
"items":[
{
"id":79070147,
"status":true,
"authorUsername":"mostafa awd",
"title":"فيلا للبيع في حي شبرا في الرياض",
"city":"الرياض",
"postDate":1627937386,
"updateDate":1627937386,
"hasImage":true,
"thumbURL":"536010587_1627936555504.jpg",
"authorId":12799016,
"bodyHTML":" السعر : 700,000 ريال\n <p>فيلا للبيع في حي شبرا ، الرياض ، الرياض</p>\n<p>الواجهة شرق</p><p>3 غرف نوم</p><p>صالتان</p><p>5 دورات مياة</p><p>عرض الشارع 20 متر</p><p>درج صالة</p><p>غرفة خادمة</p><p>بيت شعر</p><p>حوش</p><p>مطبخ</p><p>ملحق</p><p>مدخل سيارة</p><p>دوبلكس</p><p>المساحة 250 متر مربع</p>\n<p><img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555504.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555547.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555596.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555661.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555716.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555770.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555832.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555889.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555951.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556015.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556070.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556128.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556191.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556256.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556336.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556411.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556483.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556555.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556632.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556709.jpg\" loading=\"lazy\" >\n<img src=\"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556791.jpg\" loading=\"lazy\" ></p>",
"bodyTEXT":"السعر : 700,000 ريال\n \nفيلا للبيع في حي شبرا ، الرياض ، الرياض\n \nالواجهة شرق \n3 غرف نوم \nصالتان \n5 دورات مياة \nعرض الشارع 20 متر \nدرج صالة \nغرفة خادمة \nبيت شعر \nحوش \nمطبخ \nملحق \nمدخل سيارة \nدوبلكس \nالمساحة 250 متر مربع",
"tags":[
"حراج العقار",
"عقار حي شبرا في الرياض",
"فلل للبيع",
"فلل للبيع في الرياض",
"فلل للبيع في حي شبرا في الرياض"
],
"imagesList":[
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555504.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555547.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555596.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555661.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555716.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555770.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555832.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555889.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936555951.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556015.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556070.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556128.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556191.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556256.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556336.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556411.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556483.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556555.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556632.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556709.jpg",
"https://s3-eu-west-1.amazonaws.com/aqar/props/536010587_1627936556791.jpg"
],
"commentStatus":1,
"commentCount":0,
"upRank":0,
"downRank":0,
"geoHash":"th35vce06"
}
],
"pageInfo":{
"hasNextPage":false
}
}
}
}
Answered By - αԋɱҽԃ αмєяιcαη
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.