Scrapy抽出物は、HTMLから(両方)オブジェクト情報のXpathセレクタを使用する方法

しばらく前に、私たちはScrapyは車が時間ジュニアパートナーがこれらの記事を突くことができます持っていなかった、プロジェクトだけでなく、Scrapyの爬虫類紹介にいくつかのヒントを起動する方法について説明します。

あなたは(上)新しい枠組み爬虫類scrapy最初の項目を作成する方法を教えて

あなたは、最初のプロジェクト(下)の新しいscrapy爬虫類のフレームワークを作成する方法を教えて

ヒントを実行してデバッグについてScrapyの爬虫類・プロジェクト(パートI)

ヒントを実行してデバッグについてScrapyの爬虫類・プロジェクト(パートII)

今日はHTMLから抽出したXpath Scrapy先情報にセレクタを使用する方法を紹介します。Scrapyで、それはこの講義、我々は最初のXpathセレクタを集中、1はCSSセレクタで、1は、XPathセレクタで、データを抽出する2つの方法を提供しています、それはまだ例としてボレオンラインのウェブサイトです。

 

1、Webサイトを開いて、以下に示すようにランダムに、任意の物品のビューを選択します。

 

私たちは上のメインタイトル、日付、件名、コメント、テキストなどを抽出するために必要な情報。

2、我々は、コードを書き始めることができ、コードベースは、以下の通り、特定のURLへstart_urlsパラメータ値は、他のコードが変更されないことに留意すべきです。

 

図3に示すように、元のページに、キーボードショートカットキーF12を押すか、「チェック(N)」を選択し、ページ上でマウスを右クリックし、そしてにより、インタフェースページを試運転ポップ。

 

4、あなたがウェブとデータ・ソース間の相互作用を達成することができ、小さなアイコンの図の赤いボックスをクリックして、それが簡単に私たちはラベルを見つけることができます。

 

5は、私たちは、アイコン上の図を選択し、ページ上のタイトルを選択すると、以降のページは自動的に私たちのポジショニングのソースにジャンプします、以下に示す、タイトルに見ることができます

ラベルの下。

 

 

6、尔后我们就可以根据上图中的网页层次结构写出标题的Xpath表达式,这里先提供一种比较笨的方法,从头到尾进行罗列的写,“/html/body/div[1]/div[3]/div[1]/div[1]/h1”,有没有发现灰常的辛苦,像这种大标题信息还比较好提取一些,若是碰到犄角旮旯的信息,就比较难写表达式了,而且这种方式容易出错,效率还低。不过小伙伴们不用灰心,浏览器给我们提供了一个便捷的方式,让我们可以直接复制Xpath表达式。在标题处或者目标信息处右键,然后选择“Copy”,再选择“Copy Xpath”即可进行复制该标签的Xpath表达式,具体过程如下图所示。

 

可以看到复制的Xpath表达式为“//*[@id="post-113659"]/div[1]/h1”,其中id="post-113659"是属于这篇文章的一个标识,如下图所示。

 

通过该标识我们就可以很快的定位到标签,其与我们用笨方法手动写出来的Xpath表达式有时候并不是一致的。下面将两个Xpath表达式所匹配的内容分别进行输出。

7、将Xpath表达式写入Scrapy爬虫主体文件中,尔后Debug我们之前定义的main.py文件,将会得到下图的输出。可以看到selector1和selector2中的数据即是网页上的内容,而且内容是一致的。

 

之后点击停止Debug模式,便可以退出Debug模式。

8、从上图中我们可以看到选择器将标签

 

也都取出来了,而我们想要取的内容仅仅是标签内部的数据,此时只需要使用在Xpath表达式后边加入text()函数,便可以将其中的数据进行取出。

 

 

通过这篇文章,我们可以了解到尽管我们自己写出的Xpath表达式和浏览器给我们返回的Xpath表达式在写法上并不一致,但是程序运行之后,其返回的数据内容是一致的。换句话说,关于某个目标数据的Xpath表达式并不是唯一的,只要符合Xpath表达式语法,即便是写的很短,也是没问题的,你开心就好。此外在Scrapy爬虫框架中,text()函数常常与Xpath表达式运用在一块,用于提取节点中的数据内容。

おすすめ

転載: www.cnblogs.com/dcpeng/p/10990499.html