通过HTTP发送和格式化变量

2024-04-25 01:22:45 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,所以我一直在尝试制作一个脚本,只读取某人拥有的追随者数量,然后将追随者数量发送回请求它的服务器。我完全不知道http是如何工作的,也不知道如何正确地格式化一个变量来遍历它。每当我发出请求时,我都会收到一个错误的响应。我知道这是什么原因,变量和python如何格式化它,但是我如何通过http发送它呢?有什么帮助吗?(此外,此服务器根本不会有太多流量)

import selenium
from selenium import webdriver
import time
import http
import http.server
import socketserver
from http.server import HTTPServer, BaseHTTPRequestHandler
import json
driver = webdriver.Chrome()

class requestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('content-type', 'text/html')
        self.end_headers
        
        print(self.path[1:])
        driver.get('https://www.tiktok.com/@%s?lang=en' % self.path[1:])
        FOLLOWERS = driver.find_element_by_xpath('//*[@id="main"]/div[2]/div[2]/div/header/h2[1]/div[2]/strong').text
        driver.close
        print(str(FOLLOWERS))
        self.wfile.write((str(FOLLOWERS).encode()))
        
def main():
    PORT = 8000
    server = HTTPServer(('', PORT), requestHandler)
    print('Server running on port %s' % PORT)
    server.serve_forever()

if __name__ == '__main__':
    main()```

1条回答
网友
1楼 · 发布于 2024-04-25 01:22:45

结束标头时忘记创建函数调用

self.end_headers()

是您想要的(圆括号缺失)。否则,chrome将无法识别这是一个有效的HTTP响应。 有趣的是,这段代码在使用firefox时有效

相关问题 更多 >