小编αԋɱ*_*cαη的帖子

Python selenium 获取页面标题

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.firefox.options import Options

options = Options()
options.headless = True
driver = webdriver.Firefox(options=options)
driver.get("https://hapondo.qa/rent/doha/apartments/studio")
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "/html/head/title"))
)

print(element.text)
Run Code Online (Sandbox Code Playgroud)

在无头选项下无法获取页面标题?尝试过等待甚至尝试过driver.title

python selenium page-title selenium-webdriver webdriverwait

10
推荐指数
1
解决办法
1万
查看次数

硬抓取 API

如果您导航到以下网址并选择Search By Country

然后插入AEfor Holder Country

如下:

在此处输入图片说明

按 后search。然后您会注意到XHR对以下API的调用,这是一个POST请求。

这是它:

在此处输入图片说明

正如你可以看到有qz,我不能得到它如何才能调用执行API,做分页太多。

有人可能知道如何调用该 API 并进行分页吗?

我达到最好的是JS的功能定位,其处理的参数编码这里

我已经使用代理轮换服务尝试了 selenium,但是在检索一些页面后我被检测到了。

javascript python api beautifulsoup python-requests

10
推荐指数
2
解决办法
448
查看次数

找出每两行pandas data.frame 的字符串之间的差异

我是 Python 新手,我为此苦苦挣扎了一段时间。我有一个看起来像这样的文件:

    name   seq
1   a1     bbb
2   a2     bbc
3   b1     fff
4   b2     fff
5   c1     aaa
6   c2     acg
Run Code Online (Sandbox Code Playgroud)

其中 name 是字符串的名称, seq 是字符串。我想要一个新的列或一个新的数据框,它指示每两行之间没有重叠的差异数。例如,我想要名称 [a1-a2] 然后是 [b1-b2] 以及最后在 [c1-c2] 之间的序列之间的差异数。

所以我需要这样的东西:

    name   seq   diff  
1   a1     bbb    NA   
2   a2     bbc    1
3   b1     fff    NA
4   b2     fff    0
5   c1     aaa    NA
6   c2     acg    2
Run Code Online (Sandbox Code Playgroud)

任何帮助都受到高度赞赏

python string pandas difference

6
推荐指数
2
解决办法
1648
查看次数

Python 用静态图像将 mp3 转换为 mp4

我确实有x包含文件列表的文件mp3,我想将每个mp3文件转换为mp4带有static .png照片的文件。

似乎这里唯一的方法是使用ffmpeg,但不知道如何实现它。

我编写了脚本来输入mp3文件夹和一张.png照片。

然后它将创建新文件夹x-converted,我想将每个文件夹转换mp3为具有相同名称mp4的静态文件,例如成为pngfile1.mp3file1.mp4

这是我的代码:

import os
import sys
from pathlib import Path
import shutil

if len(sys.argv) != 3 or not sys.argv[2].endswith("png"):
    print("Make sure to provide two arguments only\nSecond arugment should be .png")
    exit()


def CheckFile():
    try:
        files = []
        for path in os.listdir(sys.argv[1]):
            full_path = os.path.join(sys.argv[1], path)
            if os.path.isfile(full_path):
                files.append(full_path)
        mp3 = …
Run Code Online (Sandbox Code Playgroud)

python unix ffmpeg

3
推荐指数
1
解决办法
4225
查看次数

如何使用 BeautifulSoup 提取网站中的所有 URL

我正在开发一个需要从网站提取所有链接的项目,使用此代码我将从单个 URL 获取所有链接:

import requests
from bs4 import BeautifulSoup, SoupStrainer

source_code = requests.get('https://stackoverflow.com/')
soup = BeautifulSoup(source_code.content, 'lxml')
links = []

for link in soup.find_all('a'):
    links.append(str(link))
Run Code Online (Sandbox Code Playgroud)

问题是,如果我想提取所有 URL,我必须编写另一个 for 循环,然后再编写一个......。我想提取该网站及其子域中存在的所有 URL。有什么办法可以做到这一点而不需要编写嵌套吗?即使使用嵌套的 for 编写,我也不知道应该使用多少个 for 来获取所有 URL。

python url beautifulsoup web-crawler web-scraping

2
推荐指数
1
解决办法
2万
查看次数

无法与 API 通信

我正在尝试抓取以下网站

我注意到在页面之间导航期间对以下端点执行了 XHR POST 请求,如您在以下打印屏幕中所见:

在此处输入图片说明

在 POST 请求中卡住的东西,我注意到后面有一个动态值,GBK-但我不明白它是从哪里生成的或如何获取它的。

如果您只是在页面之间导航,您会注意到值保持变化。

根据以下回答更新Life is complex

这是POST向 API发送请求的方法:

import requests

# we need the value!
url = "http://app1.nmpa.gov.cn/data_nmpa/face3/search.jsp?6SQk6G2z=GBK-Value"

# here you can add headers as you need!
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0",
    "Accept": "*/*",
    "Accept-Language": "en-US,en;q=0.5",
    "cache-control": "no-cache",
    "Content-Type": "application/x-www-form-urlencoded",
    "Pragma": "no-cache"
}

data = {
    "tableId": "27",
    "State": [
        "1",
        "1",
        "1",
        "1",
        "1",
        "1",
        "1" …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup python-requests

-4
推荐指数
1
解决办法
381
查看次数