راکت
ftp
ftp
توسط ftp مطرح شد
7 پاسخ

سوال در مورد کرل

@ali.bayat
من میخوام یک عددی رو در شماره نظام پزشکی این سایت https://membersearch.irimc.org/ وارد کردم اطلاعات رو بهم نمایش بده الان مثلا عدد 65324 رو وارد کنم اطلاعات رو میده میشه بگید با کرل چطوی این کار رو انجام بدم ممنون میشم با مثال بگید میخوام کرل رو یاد بگیرم


ثبت پرسش جدید
coarad supp
coarad supp
تخصص :برنامه نویس لاراول
@coaradsupp6 سال پیشمطرح شد
0

ینی شما میخواین یه درخواست بفرستید به این صفحه و پاسخ بگیرید؟

اگه منظورتونو درست متوجه شده باشم، باید کرولر بنویسید، که به این صفحه درخواست بزنه و فرم رو سابمیت کنه و پاسخ بگیره، به نظرم با این بتونید این کارو انجام بدید

https://symfony.com/doc/current/components/domcrawler.html

قسمت فرمش رو مطالعه بفرمایید

یه همچین کاری رو من قبلا انجام دادم با این پکیج که به time.ir ریکوئست میفرستاد ولی فرم سابمیت نمیکرد،
https://roocket.ir/discuss/7548


ftp
ftp
تخصص :ساده
@ftp6 سال پیشمطرح شد
0

@coaradsupp
من با کرل(curl) میخوام این قضیه رو حل کنم میشه راهنمایی کنید


coarad supp
coarad supp
تخصص :برنامه نویس لاراول
@coaradsupp6 سال پیشمطرح شد
0

والا با کرل رو کار نکردم و توی سرچ هام در اون موردی که نیاز داشتم، به چیزی برنخوردم، شاید دوستان بدونن به چه شکل میشه استفاده کرد


ftp
ftp
تخصص :ساده
@ftp6 سال پیشمطرح شد
0

@ali.bayat
@coaradsupp @mohsenbostan
من کدش رو نوشتم اما احتمالا یک توکن (RequestVerificationToken) داره اون رو نمیدونم چطوری بگیرم میشه راهنمایی کنید
در قسمت postfields یک توکن هست که هر دفعه عوض میشه اون رو چطوری باید بگیرم

 $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://membersearch.irimc.org/searchresult');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "__RequestVerificationToken=vaIcygH4xHXY3yU1b12TUKFb9MxBTuW98rslZDonosoU0xZTQKzMDmRlO-bIPS5xmfD-03skEAafpxKBYCM86L4-yEDMlEizNXHXNfSFtnA1&FirstName=&LastName=&Gender=&McCode=65324&DegreeField=&OfficeCity=&OfficeAddress=&g_recaptcha_response=03AGdBq26SdtzR57QDCyhs72YLb7Ml4mtkOmQOwzS_jZ-L5csytBuuqT8HSyWObG0sFBndbeS4Z6llYql8qpv0IFILW0zEerx-CWnYwMFWgKfDFItf1LM_OxFVehvAmFYyEk49CXj6syev2ddBuNeG4Fi16DOw3PTRaA4qUkh-SkfTgRZ7FLdAQUqa4k2pipJWlG3kwGhWG8-0mmljocQFHRxXjnGISLBCBvTzj7B544Z2YF0cGt7cFlLvXAKc3tGen8-hkOa9vy9Cx1BsBL3LfjHiabNCziq6Xu1gbZOkyz0E1DLoklOyXBGovCEvrqbHCNanMcB1CsYLeLEs1j3kkgc2d92Ct37rhB6P6kJuA9_w_B9zCT21Y9MCbptBTnEdcs-fucdq66zhigHycH6Rz_r9zZYxuqw5_Q");
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
    $headers = array();
    $headers[] = 'Authority: membersearch.irimc.org';
    $headers[] = 'Cache-Control: max-age=0';
    $headers[] = 'Upgrade-Insecure-Requests: 1';
    $headers[] = 'Origin: https://membersearch.irimc.org';
    $headers[] = 'Content-Type: application/x-www-form-urlencoded';
    $headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36';
    $headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9';
    $headers[] = 'Sec-Fetch-Site: same-origin';
    $headers[] = 'Sec-Fetch-Mode: navigate';
    $headers[] = 'Sec-Fetch-User: ?1';
    $headers[] = 'Sec-Fetch-Dest: document';
    $headers[] = 'Referer: https://membersearch.irimc.org/';
    $headers[] = 'Accept-Language: fa,en;q=0.9';
    $headers[] = 'Cookie: _ga=GA1.2.1624413696.1588586881; __utma=128786644.1624413696.1588586881.1588586881.1588586881.1; __utmz=128786644.1588586881.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __RequestVerificationToken=qsHBQZR3FJ1rSafIqmscznSq0Iqy-0iXPQe_ebFSFPIJcQbCZMralTSJ2m5XWFidlT-mQIJxPkFHKrHL1o7z-UpZpCw0ndbC9LRhXkvUZK01; cookiesession1=4973D017888GE8ETNKZRPT534BJGB74C; _gid=GA1.2.388215316.1589189862; ASP.NET_SessionId=rrqcrqumnsdpchioihzq3crn; _gat=1';
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
        echo 'Error:' . curl_error($ch);
    }
    curl_close($ch);
    return $result;

ftp
ftp
تخصص :ساده
@ftp6 سال پیشمطرح شد
0

@hesammousavi
@juza66
@ali.bayat
میشه راهنمایی کنید


علی بیات
علی بیات
تخصص :توسعه دهنده ارشد وب
@ali.bayat6 سال پیشمطرح شد
0

همونطور که در لاراول CSRF توکن داریم
در C# هم RequestVerificationToken رو داریم..

برای جلوگیری از Cross-Site Request Forgery

وقتی که درخواستی یا ریکوئستی فرستاده میشه.. یه توکن در بدنه فرم قرار میدند
و یک توکن در سشن.
اگر این ۲ یکسان نباشه.. متوجه میشند که درخواست از سمت سیستم خودسون فرستاده نشده.

و این فیلد رو قرار دادند تا فقط درخواست هایی که از سمت سرور خودشون فرستاده میشه مجاز باشه..
به عبارت دیگه این کار رو کردند که شما از لوکیشن دیگه (از سایت خودت) نتونی از این سیستم استفاده کنی


ftp
ftp
تخصص :ساده
@ftp6 سال پیشمطرح شد
0

@ali.bayat
علی اقا میدونم اما میگن راه داره میشه کاری کرد


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام