python - 这个字段的src属性如何用xpath选择?
PHPz
PHPz 2017-04-17 17:41:53
0
5
627
<img class="js-refreshCaptcha captcha" width="120" height="30" data-tip="s$t$看不清楚?换一张" alt="验证码" src="/captcha.gif?r=1462431202340&amp;type=login" style="display: block;">

这个字段的src属性如何用xpath选择?

我的写法是:

captcha_url = response.xpath('/html/body/p[1]/p/p[2]/p[2]/form/p[1]/p[3]/p/img/@src').extract()

中间的xpath是从chrome直接copy的
但是无法显示出src属性,最后弹出的是[]
不知道哪里有问题、
另外如果知道css选择器怎么写的,也可以告知一下,我看到class中有空格,不知道如何选择.
我的写法是:

captcha_url = response.css('.js-refreshCaptcha .captcha::attr(src)').extract()

从Scrapy命令行中一步步测试得到,是不是因为是JS动态生成的原因?才会导致@src属性无法获取?

PHPz
PHPz

学习是最好的投资!

全員に返信(5)
迷茫

キャプチャした HTML をフィルタリングしますか?通常の検索を検討してください

いいねを押す +0
大家讲道理

Chrome には xpath-helper というツールがあり、アプリ ストアからダウンロードできます。このツールを使用して、xpath 構文が正しいかどうかを確認できます。
また、構文は正しいがプログラムで抽出できない場合は、元の Web ページが動的ページであり、jsjs で解析する必要があることを考慮する必要があります。

いいねを押す +0
PHPzhong

ブラウザにはフォールト トレラント メカニズムがあり、標準以外の HTML タグが修正されるため、コンソールに表示されるページ構造は、コードを使用してリクエストしたページ構造と異なる場合があります。
解決策:
セレクターのスコープを緩めます
クラスを使用して
コード内のブレークポイントを実行し、シングルステップを実行してこのタグの xpath ルールを見つけます

いいねを押す +0
黄舟

私は通常 bs4 を使用しています。正規表現も問題ありませんが、脳に負担がかかります。

リーリー
いいねを押す +0
大家讲道理

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート