1.最简单的爬虫
爬百度的首页,并打印数据:
# -*- coding: utf-8 -*-
# 导入库
from urllib import request
# 请求
response = request.urlopen("http://www.baidu.com/")
# 解码
content = response.read().decode('utf-8')
# 输出
print(content)
2.增加搜索参数
在百度中搜索“中国”:
import urllib.request
data = {}
# word=中国
data['word'] = '中国'
url_values = urllib.parse.urlencode(data)
url = "http://www.baidu.com/s?"
# 组合搜索的get请求
full_url = url + url_values
# 请求
data = urllib.request.urlopen(full_url).read()
# 解码
data = data.decode('UTF-8')
# 打印
print(data)
3.爬出图片地址
爬出豆瓣的页面,然后,正则匹配出图片地址。
# -*- coding: UTF-8 -*-
import urllib.request
import re
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# 获取html数据
def getHtml(url):
page = urllib.request.urlopen(url)
html_data = page.read()
return html_data
# 获取图片列表
def getImg(html_data):
# src=" 开头 .jpg > 结尾
reg = r'src="(.+?\.jpg|.png)">'
image_reg = re.compile(reg)
image_list = re.findall(image_reg, html_data)
return image_list
html = getHtml('https://site.douban.com/120100/')
html_str = html.decode('utf-8')
# 输出图片列表
print(getImg(html_str))
说明:
1.现在的网页基本都是https所以要加ssl模块:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
4.下载图片
# coding=utf-8
import urllib
import urllib.request
import re
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
def getHtml(url):
page = urllib.request.urlopen(url)
html_data = page.read()
return html_data
def getImg(html_data):
# src=" 开头 .jpg "> 结尾
reg = r'src="(.+?\.jpg|.png)">'
img_reg = re.compile(reg)
img_list = re.findall(img_reg, html_data)
return img_list