Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 刮取网页:从网页获取搜索结果_Javascript_Python_Html_Web Scraping - Fatal编程技术网

Javascript 刮取网页:从网页获取搜索结果

Javascript 刮取网页:从网页获取搜索结果,javascript,python,html,web-scraping,Javascript,Python,Html,Web Scraping,我正在尝试使用python刮取一个网页。网页URL为: 该网页包含一个搜索栏: <input type="text" name="cf-name" pattern="[0-9 ]+" value="" placeholder="25245" size="40"> 与所有刮削任务一样,请注意这样做可能不合法。确保与站点提供商核实是否正常,并在脚本中使用适当的超时,以避免不适当地攻击站点提供商 另外,请参见下面一个示例(您可能需要使用您的头配置),说明如何获取信息(请注意,javasc

我正在尝试使用python刮取一个网页。网页URL为:

该网页包含一个搜索栏:

<input type="text" name="cf-name" pattern="[0-9 ]+" value="" placeholder="25245" size="40">

与所有刮削任务一样,请注意这样做可能不合法。确保与站点提供商核实是否正常,并在脚本中使用适当的超时,以避免不适当地攻击站点提供商

另外,请参见下面一个示例(您可能需要使用您的头配置),说明如何获取信息(请注意,javascript执行可能不是最安全的方式,编写自己的信息解析器可能是更好的选择):


与所有刮削任务一样,请注意这样做可能不合法。确保与站点提供商核实是否正常,并在脚本中使用适当的超时,以避免不适当地攻击站点提供商

另外,请参见下面一个示例(您可能需要使用您的头配置),说明如何获取信息(请注意,javascript执行可能不是最安全的方式,编写自己的信息解析器可能是更好的选择):


非常感谢。我会采纳你的建议,在使用之前与网站所有者联系。谢谢!我会采纳你的建议,在使用之前联系网站所有者。
<input type="submit" name="cf-submitted" value="Sök">
<p class="postnrresultat resultat">Postnummer <strong>17568</strong> har <strong>
<span id="snittlon">550 628,00</span></strong> i snittinkomst och <strong>316</strong> 
i placering.<script> if(isNaN("550628.0049")){document.getElementById("snittlon").innerHTML = "550628.0049"} 
else {document.getElementById("snittlon").innerHTML = accounting.formatNumber(550628.0049, 2, " ", ",");}
</script></p>
import requests
from lxml import html

r = requests.get('https://kollainkomster.se/postnummer/', 
headers ={"user-agent": 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:73.0) Gecko/20100101 Firefox/73.0'})
import requests
from bs4 import BeautifulSoup
from quickjs import Function

def get_value(script_code):
    f = Function(name="value_getter",
                 code=
        """
        function value_getter(){
            %s
        }""" % (re.sub(r'accounting\.formatNumber\((?P<num>.*), 2, " ", ","\)', 
                       r'"\g<1>"', 
                       script_code.replace('document.getElementById("snittlon").innerHTML =', 
                                           'return')))
    )
    return f()

headers = {"user-agent": '[redacted: your user agent]'}
session = requests.Session()
session.get(r"https://kollainkomster.se/postnummer/", headers=headers)
r = session.post(r"https://kollainkomster.se/postnummer/", 
                 headers=headers, 
                 data={"cf-name": 17568,                                                                   
                       "cf-submitted": "Sök"})
soup = BeautifulSoup(r.text)
income = get_value(soup.find(class_="postnrresultat resultat").find("script").text)
post_number, _, ranking = [x.text for x in 
                           soup.find(class_="postnrresultat resultat").findAll("strong")]
print(income, post_number, ranking)
393568.4065 17568 1414