3

Scrapy で XPath を使用すると問題が発生します。

テーブル内のリンクを見ています - ブラウザでは、要素を表示すると完全なリンクがリストされます。ただし、スクレイピーシェルはリンクの端を切り落としています。

表からのリンクの例:

    http://www.ashp.org/DrugShortages/Current/Bulletin.aspx?id=463

要素を検査する場合:

    <a href="/DrugShortages/Current/Bulletin.aspx?id=463">

Scrapy シェルで抽出すると、463 が削除されます。

何か案は?

これがスパイダーのコードです。リンクをクロールするようにまだ実際に設定していませんが、最初に正しい XPath 構文ですべてを設定することを考えました。

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from ashp.items import AshpItem

    class MySpider(BaseSpider):
    name = "ashp"
    allowed_domains = ["ashp.org"]
    start_urls = ["http://ashp.org/menu/DrugShortages/CurrentShortages"]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        titles = hxs.select("//span[@class='pl']")
        for titles in titles:
            title = titles.select("a/text()").extract()
            link = titles.select("a/@href").extract()
            print title, link
4

1 に答える 1