爬虫 1

Posted leafchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫 1相关的知识,希望对你有一定的参考价值。

1. 使用requests 、urllib构建简单爬虫代码

"""爬取 唯美女生 网站图片"""
import requests
import re
import os
import time


# 1. 请求网页
myheaders = {User-Agent: Mozilla/5.0}
# url = "http://pic.netbian.com"
url = http://pic.netbian.com/4kmeinv
response = requests.get(url, headers=myheaders)

# 2. 处理响应数据, 正则匹配
html = response.text
img_urls = re.findall(<img src="(.*?)" alt=".*?">, html)
print(img_urls)

# 3. 下载图片
if not os.path.exists(彼岸图片):
    os.mkdir(彼岸图片)
for img_url in img_urls:
    time.sleep(1)
    img_name = img_url.split(/)[-1]
    response = requests.get((url + img_url), headers=myheaders)
    with open(彼岸图片/ + img_name, wb) as f:
        f.write(response.content)
"""使用 urllib 创建爬虫"""
from urllib.request import urlopen
from urllib.request import Request      # 包装爬虫


url = https://www.baidu.com

headers = {
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36

}
# 创建Resquest对象,来包装请求
request = Request(url, headers=headers, method=GET, data=None)
# 发送请求
response = urlopen(request)
# 打印信息
print(状态码:, response.getcode(), 真实请求地址:, response.geturl(), 状态码:, response.status, 请求头:, response.getheaders())
info = response.read().decode()
print(info)

 

2.  GET请求, 当需要手动传参时,可以使用urllib.parse中的:quote、urlencode来进行“中文”转码

"""GET 请求,当需要手动传参,且参数为中文时,需要将参数转码
    单个参数时可以使用:quote,转码
    多个参数时:urlencode, 转码
"""
from urllib.request import urlopen, Request
from urllib.parse import quote

# 单个参数时可以使用:quote,转码
# url = "https://www.baidu.com/s?wd={}".format(quote("科技"))
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"
}
# request = Request(url, headers=headers)
# response = urlopen(request, timeout=3)
# info = response.read().decode()
# print(info)


# 多个参数时:urlencode, 转码
from urllib.parse import urlencode

args = {
    wd: "科技",
    ie: utf-8
    # ...
}

url = https://www.baidu.com/s?{}.format(urlencode(args))
print(url)

request2 = Request(url, headers=headers)
response2 = urlopen(request2, timeout=3)
info2 = response2.read().decode()
print(info2)

 

  

  

以上是关于爬虫 1的主要内容,如果未能解决你的问题,请参考以下文章

NIH周三讲座视频爬虫

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

python爬虫学习笔记-M3U8流视频数据爬虫

爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别

python网络爬虫

VSCode自定义代码片段1——vue主模板