pythonでネットの爬虫類を書きます-ホームページをダウンロードします
爬虫類を習い始めましたが、本を読み始めたばかりでpython 2.7を例に説明しました.多くのモジュールがpython 3.xに適していませんが、この本を読んだとき、彼が言った多くのモジュールがほとんど似合っていないことに気づきました.だからpython 3.6で書くことにしました.3と2の違いをよく体得しました.
1.まずpython 3のurllib 2モジュールとurllibモジュールを統合し、2でurllib 2.xxxをurllib.request.xxxに置き換えるとよい
ここでは、reモジュールという別のモジュールを使用しています.re.splitは、複数の分割子を含む文字列を分割し、分割された文字列のリストを返し、-1を直接使用してWebページの最後の部分の名前を見つけることができます.非常に実用的です.
ここには区切り記号「/」が1つしかないので、このように書いてもいいです.
更新!
1.まずpython 3のurllib 2モジュールとurllibモジュールを統合し、2でurllib 2.xxxをurllib.request.xxxに置き換えるとよい
import urllib.request
import urllib.error
import re
def download(url):
return urllib.request.urlopen(url).read()
def save(file_name, file_content):
with open(file_name.replace('/', '_') + ".html", "wb") as f:
f.write(file_content)
murl="http://blog.csdn.net/joliph"
html = download(murl)
save(re.split('/',murl)[-1], html)
ここでは、reモジュールという別のモジュールを使用しています.re.splitは、複数の分割子を含む文字列を分割し、分割された文字列のリストを返し、-1を直接使用してWebページの最後の部分の名前を見つけることができます.非常に実用的です.
save(murl.split('/')[-1], html)
ここには区切り記号「/」が1つしかないので、このように書いてもいいです.
更新!
import urllib.request
import urllib.error
import re
def download(url):
print("downloading:"+url)
headers={'User-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
request=urllib.request.Request(url,headers=headers)
try:
content=urllib.request.urlopen(request).read()
except urllib.error.URLError as e:
print("download error:"+e.reason)
content=None
return content
def save(file_name, file_content):
print("saving.......")
try:
with open(file_name + ".html", "wb") as f:
f.write(file_content)
except TypeError:
print("TypeError")
murl="http://www.budejie.com/"
html = download(murl)
save(re.split('/',murl)[-1], html)
,