python 自動(dòng)提交和抓取網(wǎng)頁(yè)
更新時(shí)間:2009年07月13日 00:36:49 作者:
最近在研究怎么樣做個(gè)自動(dòng)發(fā)帖器,要完成這個(gè)工具難度蠻大的,驗(yàn)證碼就是一個(gè)大問題(還沒有想到解決辦法哦,不管了),先要解決的是如何抓取,分析和提交頁(yè)面的問題。
下面是用python寫的,使用lxml來做html分析,從網(wǎng)上看到的,說是分析速度最快的哦,不過沒有驗(yàn)證過。好了,上代碼。
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 = [] # pretend we're a human -- don't do this
def open_http(method, url, values={}):
if method == "POST":
return opener.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://m.fzitv.net").read())
form = tree.forms[0]
form.fields["q"] = "eplussoft"
form.action="http://m.fzitv.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)
恩,驗(yàn)證碼是個(gè)大問題。還有今天看了一些百度貼吧上的東西,更是壞了心情,它的驗(yàn)證碼是用ajax取的圖片,這就更加麻煩了。不過好像現(xiàn)在大多數(shù)的論壇和博客的驗(yàn)證碼都是這樣的了。這樣第一次抓取下來的頁(yè)面就不會(huì)包含有驗(yàn)證碼圖片了,更不要說分析驗(yàn)證碼圖片了。要解決的問題還是很多的。。。
復(fù)制代碼 代碼如下:
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 = [] # pretend we're a human -- don't do this
def open_http(method, url, values={}):
if method == "POST":
return opener.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://m.fzitv.net").read())
form = tree.forms[0]
form.fields["q"] = "eplussoft"
form.action="http://m.fzitv.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)
恩,驗(yàn)證碼是個(gè)大問題。還有今天看了一些百度貼吧上的東西,更是壞了心情,它的驗(yàn)證碼是用ajax取的圖片,這就更加麻煩了。不過好像現(xiàn)在大多數(shù)的論壇和博客的驗(yàn)證碼都是這樣的了。這樣第一次抓取下來的頁(yè)面就不會(huì)包含有驗(yàn)證碼圖片了,更不要說分析驗(yàn)證碼圖片了。要解決的問題還是很多的。。。
您可能感興趣的文章:
- Python爬蟲使用Selenium+PhantomJS抓取Ajax和動(dòng)態(tài)HTML內(nèi)容
- Python抓取聚劃算商品分析頁(yè)面獲取商品信息并以XML格式保存到本地
- Python 抓取動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容方案詳解
- 零基礎(chǔ)寫python爬蟲之使用urllib2組件抓取網(wǎng)頁(yè)內(nèi)容
- 使用Python編寫簡(jiǎn)單網(wǎng)絡(luò)爬蟲抓取視頻下載資源
- python采用requests庫(kù)模擬登錄和抓取數(shù)據(jù)的簡(jiǎn)單示例
- python抓取網(wǎng)頁(yè)圖片示例(python爬蟲)
- Python實(shí)現(xiàn)抓取頁(yè)面上鏈接的簡(jiǎn)單爬蟲分享
- 通過抓取淘寶評(píng)論為例講解Python爬取ajax動(dòng)態(tài)生成的數(shù)據(jù)(經(jīng)典)
- Python如何抓取天貓商品詳細(xì)信息及交易記錄
相關(guān)文章
如何利用Python快速繪制海報(bào)級(jí)別地圖詳解
Python之所以這么流行,是因?yàn)樗粌H能夠應(yīng)用于科技領(lǐng)域,還能用來做許多其他學(xué)科的研究工具,最常見的便是繪制地圖,這篇文章主要給大家介紹了關(guān)于如何利用Python快速繪制海報(bào)級(jí)別地圖的相關(guān)資料,需要的朋友可以參考下2021-09-09
Python 數(shù)據(jù)結(jié)構(gòu)之旋轉(zhuǎn)鏈表
這篇文章主要介紹了Python 數(shù)據(jù)結(jié)構(gòu)之旋轉(zhuǎn)鏈表的相關(guān)資料,需要的朋友可以參考下2017-02-02
python利用Excel讀取和存儲(chǔ)測(cè)試數(shù)據(jù)完成接口自動(dòng)化教程
這篇文章主要介紹了python利用Excel讀取和存儲(chǔ)測(cè)試數(shù)據(jù)完成接口自動(dòng)化教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python抓取網(wǎng)頁(yè)中鏈接的靜態(tài)圖片
這篇文章主要為大家詳細(xì)介紹了python抓取網(wǎng)頁(yè)中鏈接的靜態(tài)圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
詳解Python的Twisted框架中reactor事件管理器的用法
這篇文章主要介紹了詳解Python的Twisted框架中reactor事件管理器的用法,Twisted是一款高人氣的異步Python開發(fā)框架,需要的朋友可以參考下2016-05-05
Pytorch訓(xùn)練網(wǎng)絡(luò)過程中l(wèi)oss突然變?yōu)?的解決方案
這篇文章主要介紹了Pytorch訓(xùn)練網(wǎng)絡(luò)過程中l(wèi)oss突然變?yōu)?的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05

