1-2 requests模块之简单的网页采集器

  • 根据关键词,爬取百度搜索后的网页源代码。
import requests

# User-Agent(请求载体的身份标识)
# UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常的请求。但是,如果检测到请求的载体身份标识不是某一款浏览器的,则表示该请求为不正常请求(即爬虫),则服务器很有可能拒绝该次请求。
# UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器。
if __name__ == '__main__':
    # 我自己写的:
    """
    url_ = "https://www.sogou.com/web?query={}"
    # 处理url携带的参数:
    query = input("请输入您要采集的网页关键词:")
    url = url_.format(query)
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0"
    }
    resp = requests.get(url=url, headers=headers)
    html = resp.content.decode("utf-8")
    with open("2/" + "2. 网页采集结果-myself.html", "w", encoding="utf-8") as f:
        f.write(html)
    resp.close()
    print("采集完毕!")
    """
    # 教程上面的:
    # url = "https://www.sogou.com/web?"
    url = "https://www.sogou.com/web"
    # 1. 处理url携带的参数:封装到字典中
    kw = input("enter a word: ")
    param = {
    
    
        'query': kw
    }
    # UA伪装:
    header = {
    
    
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0"
    }
    # 2. 对指定url发起请求,对应的url是携带参数的,并且请求过程中处理了参数。
    response = requests.get(url, params=param, headers=header)

    # page_text = response.text
    page_text = response.content.decode("utf-8")
    filename = kw + ".html"
    with open("2/" + filename, "w", encoding="utf-8") as f:
        f.write(page_text)
    response.close()
    print(filename, "保存成功!")

运行结果:
在这里插入图片描述
在这里插入图片描述

  • 请求头中需要带上UA用户代理。

猜你喜欢

转载自blog.csdn.net/ungoing/article/details/124083254
1-2