ホームページ >バックエンド開発 >Python チュートリアル >Python は Web ページを自動的に送信してクロールします。

Python は Web ページを自動的に送信してクロールします。

WBOY
WBOYオリジナル
2016-06-16 08:47:191353ブラウズ

以下は HTML 解析に lxml を使って Python で書いたもので、ネットで調べたところ解析が最も速いとありましたが未検証です。さて、コードに移りましょう。

コードをコピー コードは次のとおりです:

import urllib
import urllib2
import urlparse
import lxml.html
def url_with_query(url,values):
parts = urlparse.urlparse(url)
rest, (query, frag) = Parts[:-2], Parts[-2:]
return urlparse.urlunparse(rest + (urllib.urlencode(values), None))
def make_open_http():
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
opener.addheaders = [] # 人間であるふりをします -- これはやめてください
def open_http(method, url, value={}):
if method == "POST":
return オープナー。 open(url , urllib.urlencode(values))
else:
return opener.open(url_with_query(url,values))
return open_http
open_http = make_open_http()
tree = lxml .html.fromstring(open_http("GET", "http://www.jb51.net").read())
form = Tree.forms[0]
form.fields["q"] = "eplussoft "
form.action="http://www.jb51.net/search"
response = lxml.html.submit_form(form,open_http=open_http)
html = response.read( )
doc = lxml.html.fromstring(html)
lxml.html.open_in_browser(doc)

そうですね、検証コードは大きな問題です。今日、Baidu Tieba でいくつかの記事を読んだので、さらに気分が悪くなりました。認証コードは ajax を使用して撮影された写真であり、これはさらに厄介です。しかし、現在ではほとんどのフォーラムやブログにこのような確認コードがあるようです。このようにして、初めてキャプチャされたページには、検証コード画像が含まれず、ましてや検証コード画像が解析されなくなります。解決すべき問題はまだたくさんあります。 。 。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。