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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: rahmani در 15 امرداد 1392، 03:14 ب‌ظ

عنوان: دستور که یک عبارت را دریک fied خاص سایت خاص جستجو ونشانی صفحه نتیجه را برگرداند
ارسال شده توسط: rahmani در 15 امرداد 1392، 03:14 ب‌ظ
سلام

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

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

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

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

پیشاپیش از لطف شما متشکرم...
عنوان: پاسخ : دستور که یک عبارت را دریک fied خاص سایت خاص جستجو ونشانی صفحه نتیجه را برگرداند
ارسال شده توسط: vandu در 15 امرداد 1392، 03:31 ب‌ظ
محتویات این صفحه (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
عنوان: پاسخ : دستور که یک عبارت را دریک fied خاص سایت خاص جستجو ونشانی صفحه نتیجه را برگرداند
ارسال شده توسط: rahmani در 16 امرداد 1392، 08:47 ق‌ظ
محتویات این صفحه (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$ بود. برداشت من درست است؟

خیلی خیلی ممنونم
عنوان: پاسخ : دستور که یک عبارت را دریک fied خاص سایت خاص جستجو ونشانی صفحه نتیجه را برگرداند
ارسال شده توسط: vandu در 16 امرداد 1392، 11:33 ق‌ظ
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/>";
عنوان: دستور که یک عبارت را دریک fied خاص سایت خاص جستجو ونشانی صفحه نتیجه را برگرداند
ارسال شده توسط: rahmani در 27 آبان 1392، 03:44 ب‌ظ
سلام با عرض تسلیت و آرزوی قبولی

بنده چند ماه پیش در مورد جستجوی شناسه کتاب در سایت isbndb سوالی پرسیدم که جناب Vandu پاسخ مفیدی ارائه دادند و بنده هم استفاده کردم. اکنون من پرسش مشابهی در مورد جستجوی شناسه مقاله دارم. اگر در سایت http://www.crossref.org/guestquery#xmlsearch (http://www.crossref.org/guestquery#xmlsearch) یا http://www.crossref.org/guestquery/ (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>
عنوان: پاسخ : دستور که یک عبارت را دریک fied خاص سایت خاص جستجو ونشانی صفحه نتیجه را برگرداند
ارسال شده توسط: rahmani در 28 آبان 1392، 06:14 ق‌ظ
سلام
جایگزینی character / با  %2F

<?php $path "http://www.crossref.org/guestquery?queryType=doi&restype=unixref&doi=10.1002%2Fanie.200905978&doi_search=Search"?>