Python實(shí)現(xiàn)自動(dòng)訪問(wèn)網(wǎng)頁(yè)的例子
我就廢話不多說(shuō)了,直接上代碼吧!
import urllib.request import requests import time import ssl import random def openUrl(ip, agent): headers = {'User-Agent': agent} proxies = {'http' : ip} requests.get("https://www.baidu.com", headers=headers, proxies=proxies, verify=True) ssl._create_default_https_context = ssl._create_unverified_context print("Access to success.") #IP池 #IP來(lái)源: # http://www.xicidaili.com/ # https://www.kuaidaili.com/free/ def randomIP(): ip = random.choice(['120.78.78.141', '122.72.18.35', '120.92.119.229']) return ip #User-Agent #User-Agent來(lái)源:http://www.useragentstring.com/pages/useragentstring.php def randomUserAgent(): UserAgent = random.choice(['Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36']) return UserAgent if __name__ == '__main__': for i in range(10): ip = randomIP() agent = randomUserAgent() openUrl(ip, agent) time.sleep(1)
補(bǔ)充拓展:Python模擬瀏覽器實(shí)現(xiàn)網(wǎng)頁(yè)訪問(wèn)方式
模擬瀏覽器請(qǐng)求數(shù)據(jù):
import socket # 創(chuàng)建TCP鏈接 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # DNS 解析和鏈接HTTP服務(wù)器 tcp_socket.connect(("www.qq.com", 80)) # 編寫(xiě)請(qǐng)求頭, 發(fā)送HTTP請(qǐng)求報(bào)文 # 請(qǐng)求行 request_line = "GET / HTTP/1.1\r\n" # 請(qǐng)求頭,設(shè)置請(qǐng)求域名 request_header = "www.qq.com\r\n" request_data = request_line + request_header + "\r\n" # 發(fā)送請(qǐng)求 tcp_socket.send(request_data.encode("utf-8")) # 接收響應(yīng)報(bào)文,指定長(zhǎng)度 response_data = tcp_socket.recv(4096) # 對(duì)響應(yīng)報(bào)文進(jìn)行解析 --切割 response_str_data = response_data.decode("utf-8") print(response_data) # "\r\n\r\n" 之后的數(shù)據(jù)就是響應(yīng)體數(shù)據(jù) index = response_str_data.find("\r\n\r\n") # 切割出的數(shù)據(jù)就是文件數(shù)據(jù) html_data = response_str_data[index+4:] # 在當(dāng)前路徑下新建文件存儲(chǔ)響應(yīng)數(shù)據(jù) with open("index.html", "wb") as file: file.write(html_data.encode()) # 關(guān)閉套接字 tcp_socket.close()
以上這篇Python實(shí)現(xiàn)自動(dòng)訪問(wèn)網(wǎng)頁(yè)的例子就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python socket服務(wù)常用操作代碼實(shí)例
這篇文章主要介紹了Python socket服務(wù)常用操作代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python實(shí)現(xiàn)比較兩個(gè)文件夾中代碼變化的方法
這篇文章主要介紹了Python實(shí)現(xiàn)比較兩個(gè)文件夾中代碼變化的方法,實(shí)例分析了Python讀取文件夾中文件及字符串操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07PyQt5+serial模塊實(shí)現(xiàn)一個(gè)串口小工具
這篇文章主要為大家詳細(xì)介紹了如何利用PyQt5和serial模塊實(shí)現(xiàn)一個(gè)簡(jiǎn)單的串口小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01Python中values()函數(shù)用法簡(jiǎn)單示例
這篇文章主要給大家介紹了關(guān)于Python中values()函數(shù)用法的相關(guān)資料,python內(nèi)置的values()函數(shù)返回一個(gè)字典中所有的值,文中給出了代碼示例,需要的朋友可以參考下2023-09-09Python3 實(shí)現(xiàn)隨機(jī)生成一組不重復(fù)數(shù)并按行寫(xiě)入文件
下面小編就為大家分享一篇Python3 實(shí)現(xiàn)隨機(jī)生成一組不重復(fù)數(shù)并按行寫(xiě)入文件的示例。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04