【问题标题】:Python3 beautifulsoup4 - getting input valuePython3 beautifulsoup4 - 获取输入值
【发布时间】:2017-06-28 09:47:42
【问题描述】:

1、发布主页 2、输入第一个内容 3、在子页面获取下一个内容

我找到了隐藏的文章属性。但我无法获得实际值。 我试图找到所有东西都得到输入值,但它不起作用。 Similar question:

import bs4,requests,os

url = 'http://www.qiushibaike.com'
#request the main page
res = requests.get(url)
res.raise_for_status()

soup = bs4.BeautifulSoup(res.text,"html.parser")

qsMain = soup.select('a[class="contentHerf"]')[0]
print(qsMain)
url = 'http://www.qiushibaike.com' + qsMain.get('href')

#enter the first content
res = requests.get(url)
res.raise_for_status()
print(url)
subLink = bs4.BeautifulSoup(res.text,"html.parser")

#get Children page 
s = subLink.select('input')[0].get('value')
print(s)
s1 = subLink.find("div", {"class":"article block untagged noline mb15"})
print(s1)

here the INPUT I want find

【问题讨论】:

    标签: python beautifulsoup web-crawler


    【解决方案1】:

    你的问题在这里:

    subLink.select('input')[0]
    

    特别是您选择获取[0]input 元素有很多,而您想要的不是第一个。第一个是<input id="hid" type="hidden">,接近s1的顶部。

    要可靠地找到正确的标签,只需使用其id,如下所示:

    s = subLink.find(id="articleNextLink").get('value')
    

    【讨论】:

    • 我试过这个方法,但是我发现不是'article/118839782'的值是随机值。像“文章/118743286”
    • @Nomiki 是的,该值是随机的。打开qiushibaike.com/article/119222287 并查看隐藏的输入值。现在在新的私人浏览窗口中再次打开文章(因此没有 cookie),您将看到值的变化。他们跟踪访问者以尝试使链接保持一致,但它们是随机的。 requests.get 每次都会创建一个新会话,这就是它总是变化的原因。
    • 深深感谢!!!这个问题困扰了我很久,非常感谢!
    猜你喜欢
    • 2021-02-14
    • 2020-07-13
    • 1970-01-01
    • 2017-01-23
    • 2016-04-27
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多