انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: دستور که یک عبارت را دریک fied خاص سایت خاص جستجو ونشانی صفحه نتیجه را برگرداند  (دفعات بازدید: 2424 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
سلام

ان شا... همه بندگی هاتون پسند حضرت حق باشد...

یک سایت با نشانی هست http://isbndb.com که وقتی isbn یک کتاب را در آن جستجو می کنیم ویژگی های کلی آن کتاب را در صورتی که در پایگاه داده اش موجود باشد بر می گرداند.

اکنون ما شمار زیادی isbn داریم که می خواهیم برخی ویژگی های کلی آن ها را از این سایت با برنامه نویسی php به دست بیاوریم.

بنابراین من یک دستور php لازم دارم که یک isbn  مانند 1-56924-607-6 را در یک field خاص سایت http://isbndb.com جستجو و نشانی صفحه یا محتوی آن را بازگرداند.

پیشاپیش از لطف شما متشکرم...
« آخرین ویرایش: 16 امرداد 1392، 08:38 ق‌ظ توسط rahmani »
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین vandu

  • Hero Member
  • *
  • ارسال: 741
  • جنسیت : پسر
محتویات این صفحه (query) رو واکشی کنید:
http://isbndb.com/search/all?query=querystring
که در عبارت بالا querystring همون چیزی هست که دنبالش هستید. مثلا این:
http://isbndb.com/search/all?query=0201327554یا این:
http://isbndb.com/search/all?query=how+to+program+in+python
Nothing is particularly hard if you divide it into small jobs

Henry Ford

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
محتویات این صفحه (query) رو واکشی کنید:
http://isbndb.com/search/all?query=querystring
که در عبارت بالا querystring همون چیزی هست که دنبالش هستید. مثلا این:
http://isbndb.com/search/all?query=0201327554یا این:
http://isbndb.com/search/all?query=how+to+program+in+python

سلام
عذر می خواهم
یعنی اگر بنویسیم $path = 'http://isbndb.com/search/all?query=0201327554';
$html = file_get_html($path);
آنگاه html$ شامل محتویات یا نشانی صفحه ای میشود که اگر کاربری در سایت مقدار را وارد می کرد نشانی یا محتویات آن صفحه همین html$ بود. برداشت من درست است؟

خیلی خیلی ممنونم
« آخرین ویرایش: 16 امرداد 1392، 08:50 ق‌ظ توسط rahmani »
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین vandu

  • Hero Member
  • *
  • ارسال: 741
  • جنسیت : پسر
file_get_html برای من جواب نداد. اگه میخواید فقط محتویات صفحه رو داشته باشید (بدون نیاز به parse کردنش) از این کد استفاده کنید:
<?php
$path "http://isbndb.com/search/all?query=0201327554"
$content file_get_contents($path);
echo $content;
?>

و اگه میخواید محتویات صفحه رو پردازش کنید باید صفحه رو در قالب DOMDocument ببرید. مثلا کد زیر آدرس همه لینک‌های صفحه مقصد رو بهمون میده:
<?php
$path "http://isbndb.com/search/all?query=0201327554"
$content file_get_contents($path);
$doc = new DOMDocument();
$doc->loadHTML($content);
$links $doc->getElementsByTagName('a');
foreach($links as $link)
echo $link->getAttribute('href')."<br/>";
Nothing is particularly hard if you divide it into small jobs

Henry Ford

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
سلام با عرض تسلیت و آرزوی قبولی

بنده چند ماه پیش در مورد جستجوی شناسه کتاب در سایت isbndb سوالی پرسیدم که جناب Vandu پاسخ مفیدی ارائه دادند و بنده هم استفاده کردم. اکنون من پرسش مشابهی در مورد جستجوی شناسه مقاله دارم. اگر در سایت http://www.crossref.org/guestquery#xmlsearch یا http://www.crossref.org/guestquery/شناسه مقاله را در کادر DOI وارد کنید می توانید ویژگی های  همان مقاله را در کادر پایین صفحه ببینید. در مورد قبلی جناب Vandu فرمودند که شناسه مورد نظرمان را با این روش جشتجو http://isbndb.com/search/all?query=querystring کنیم اما به گمانم در مورد سایت crossref این روش کاربرد ندارد
مثال : با روش های زیر ویزگی های مقاله نشان داده نمی شود اما اگر مقدار 10.2308/ajpt-10290 یا 10.2308/aud.2010.29.1.267 را در کادر doi وارد کنید ویژگی های مقاله نشان داده می شود
<?php $URL "http://www.crossref.org/guestquery#xmlsearch?query=10.2308/aud.2010.29.1.267";
$URL "http://www.crossref.org/guestquery#xmlsearch/search/all?query=10.2308/ajpt-10290";
$URL "http://www.crossref.org/guestquery/search/all/query=10.2308/aud.2010.29.1.267";
?>

گفتنی است شناسه های مقاله که ما می خواهیم جستجو کنیم یک رشته است که / نیز در آن وجود دارد
بفرمایید برای جستجوی شناسه مقاله در سایت چه باید کرد؟ یا چه آرگومانی به تابع file_get_html بدهیم؟

در ضمن code of html form که شناسه را در آن جستجو می کنیم به صورت زیر است:
<table width="90%" border="0"><tr><td width="20">&nbsp;</td><td >
                    <script language="JavaScript">
                        blackrule();
                    </script>

                    <b><i id="doisearch">A DOI query</i></b>

                    <form enctype="application/x-www-form-urlencoded" method="POST" name="form5" onSubmit="return validate_form5();">
                        <input type="hidden" name="queryType" value="doi">
                        <table>
                          <tr><td colspan="2">Select result format -- xml-xsd:<input type='radio' name='restype' value='xsl_xml' checked> OR unixref:<input type='radio' name='restype' value='unixref' ></td></tr>
                        <tr><td>DOI: </td><td><textarea style='font-size:14px;' name='doi' rows='1' cols='80'></textarea></td></tr>
                        <tr><td colspan=8 align=center><input style='font-weight:normal;font-size:10px;' type='submit' name='doi_search' value='Search'></tr>
                        </table>
                    </form>
                    </td></tr>
                     
                </table>
« آخرین ویرایش: 27 آبان 1392، 05:30 ب‌ظ توسط rahmani »
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
سلام
جایگزینی character / با  %2F

<?php $path "http://www.crossref.org/guestquery?queryType=doi&restype=unixref&doi=10.1002%2Fanie.200905978&doi_search=Search"?>
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني