一 基本概念
作用:①私人定制一个搜索引擎
②获取更多数据源
③搜索引擎优化
组成:① 控制节点
②爬虫节点
③资源库 (存储爬虫爬取的响应数据)
选择爬虫 – 强大的爬虫Scrapy,以及成熟高效的scrapy-redis分布式策略
1.urllib库的基本使用
import urllib
response = urllib.request.urlopen(" 此处输入网址 ")
print(response.read())
urlopen一般接受3个参数:
urlopen(url,data,timeout)
第一个url参数是URL,第二个参数data是访问URL时要传送的数据,第三个参数timeout是设置超时时间
第二,三个参数是可以不传送的
2.模拟POST登陆网站
import urllib.request
import urllib.parse
values={"username": ,"password": }
data = urllib.parse.urlencode(values)
url=" "
request=urllib.request.Request(url,data)
response =urllib.request.urlopen(request)
print(response.read())
3.urllib库的高级用法
import urllib.request
import urllib.urllib.parse
url=" "
user_agent = " "
values={'username':' ','password':' '}
headers={'User-Agent' : user_agent}
data = urllib.parse.urlencode(values)
request =urllib.request.Request(url,data,headers)
response=urllib.request.urlopen(request)
print(response.read())
例:①爬取图片
def imageCrawler(url, toPath):
headers = {"User-Agent" : ""}
req = urllib.request.Request(url ,headers=headers)
response = urllib.request.urlopen(req)
HtmlStr = response.read().decode("utf-8")
#with open(r" ", "wb") as f:
#f.write(HtmlStr)
#模式匹配图片地址
pat = r"<img >(original)|(src)='//(.*?)'/>"
re_image = re.compile(pat, re.S)
imagesList = re_image.findall(HtmlStr)
for imageUrl in imagesList:
path = os.path.join(toPath, str(num)+".jpg")
num+=1
#存储图片
urllib.request.urlretrieve("http://"+imageUrl, filename=path)