ftp
5 سال پیش توسط ftp مطرح شد
7 پاسخ

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

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


ثبت پرسش جدید
coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش آپدیت شد
0

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

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

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

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

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


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

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


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

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


ftp
تخصص : ساده
@ftp 5 سال پیش آپدیت شد
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 5 سال پیش مطرح شد
0

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


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

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

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

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

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


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

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


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

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