我正在尝试学习web交互,特别是使用请求。在
为此,我对在请求中使用Python下载汽车部件列表很感兴趣OReillyAuto.com网站但我遇到了一个小问题。在
当我浏览到this url时,它应该会显示我指定车型的刹车片和刹车片的列表。但是,它会弹出一组单选按钮,询问我是否要查看左侧、右侧或所有部分的部件。在
我一辈子都不知道如何做出选择,如何得到我能在Chrome开发工具中看到的HTML,其中包含品牌名称、价格等列表
我尝试了很多方法,但现在我做到了:
#import HTTP libraries
import requests
#import HTML parsing libraries
import bs4
url = 'http://www.oreillyauto.com/site/c/search/Brake+Pads+&+Shoes/C0068/C0009.oap?model=G6&vi=1432754&year=2006&make=Pontiac'
answerURL = 'http://www.oreillyauto.com/site/ConditionSelectServlet?answer=-1'
print("Making request")
session = requests.Session()
session.headers.update({'referer': url})
r = session.get(answerURL)
print(r.status_code)
oreillyList = bs4.BeautifulSoup(r.text, "lxml")
print("Writing response...")
logfile = 'C:/Users/mhurley/Portable_Python/notebooks/' + output + '.log'
with open(logfile, 'w') as file:
file.write(oreillyList.prettify())
print("...done writing "+logfile)
我希望我写出来的日志文件中大约有5200行,就像我在“查看页面源代码”时所做的那样。但是,我只得到了大约3000行,而且这个列表中似乎没有任何部分。在
也许我真的明白了我的想法,但我没有正确地理解它。关于如何通过这个对话请求有什么提示吗?在
编辑:我怀疑这是与我的目的相关的HTML:
^{pr2}$我很难理解如何与这个<form>
元素交互。如何使“onclick=”发生以便表单被提交?在
您需要使用Selenium+BeautifulSoup的组合。在
首先,您将使用selenium在浏览器中打开网页,选择正确的单选按钮,然后提交表单。在
在这之后,使用BeautifulSoup来解析页面中的刹车。在
相关问题 更多 >
编程相关推荐