こんにちわ。仕事が忙しくなりなかなか書く時間がありませんでした。まだまだ始まったばかりなので書くネタは尽きませんね。
以前まではやや口だけの解説気味だったので今回は少しテッキーな感じで攻めます。
ブラックハットSEOとして所謂自動ポストというのがあります。
これは人のブログにガンガンとポストを投稿していくものですが、手動ではあんまり意味ありませんが、
機械が1000,2000とどんどんポストしていけば、それなりに効果的になっていきます。
ではWordpressを例にとってどうやっているかを説明します。
以前までのHTMLのソースコードを解析してポストしていくという手口でやっていました。Wordpressでは
wp-comments-post.phpというのがよく使われるポスト先なのですが、コレを見つけてはポストすると行った形です。
ただ最近ではただのクローラーではポスト出来ないようになってきています。
そこでブラウザベースのボットなども登場してきました。ここまで来るとユーザーのブラウザかそうでないか見極めることが出来ず、
結局投稿を許してしまいます。
以下にソースコードを載せておきますが、悪用はしないようにしてください。
今回は可読性に優れているPythonを使ってみました。
import urllib, urllib2 import mechanize
def urllib_version(): url="http://hogehoge.com/wordpress/whereyouwantopost/wp-comments-post.php" values = {'author' : 'Black hatSEO', 'email':'sleepbuster1@hotmail.com', 'comment':'urllib posting. but this function is not working well these days', 'url':''} data = urllib.urlencode(values) user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' urllib_one = False if only_urllib: urllib.URLopener.version = user_agent html = urllib.urlopen( url, data ).read() else: ## h = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', ## 'Accept-Language': 'en-us,en;q=0.5', ## 'Connection': 'keep-alive', ## 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:10.0.2) Gecko/20100101 Firefox/10.0.2', } headers = { 'User-Agent' : user_agent } req = urllib2.Request(url, data, headers) response = urllib2.urlopen(req) html = response.read() print html def mechanize_version(): br = mechanize.Browser() cookie = False options = False if cookie: import cookielib cj = cookielib.LWPCookieJar() br.set_cookiejar(cj) if options: br.set_handle_equiv(True) ## br.set_handle_gzip(True) br.set_handle_redirect(True) br.set_handle_referer(True) br.set_handle_robots(False) ## br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] url="http://hogehoge.com/wordpress/whereyouwantopost" br.open( url ) br.select_form(nr=0) # watch the form for form in br.forms(): print '---------------' print form br.form[ 'author' ] = 'bluehatter BlackhatSEO' br.form[ 'email' ] = 'sleepbuster1@hotmail.com' br.form[ 'comment' ] = 'Im going to post to some blog with python.' br.form[ 'url' ] = '' br.submit() if __name__ == '__main__': browser_mode =True if not browser_mode: urllib_version() else: mechanize_version()
|
参考にしてみてください。