如何在 python 中处理网页抓取
How to approach web-scraping in python
我是 python 的新手,刚刚开始 python 网络抓取。我必须从这个 realtor site
中抓取数据
我需要根据 real-state agency 收集所有细节 op read-state agents;
对于此 在网络浏览器上,我必须遵循以下说明
- 转到this site
- 点击代理办公室按钮,在搜索框中输入 4000 pin,然后提交。
- 然后我们得到 机构的列表。
- 转到我们的团队选项卡,然后我们会找到他们的代理人。
- 然后我们必须去每个代理页面并记录他们的信息。
谁能告诉我如何处理这个问题。制作这种刮板的最佳方法是什么。
我是否必须使用 selenium 来与页面交互。
我曾使用 request、BeautifulSoup 和使用 mechanize[=39 提交的简单表单=]
我建议在搜索网站上使用 Selenium 或 Requests with session,Selenium 的优点是它可能会工作,但速度会很慢。对于 Selenium,您应该只使用 Selenium IDE(Firefox 附加)记录您所做的事情,然后从网页获取 HTML 并使用 beautifulsoup 解析数据。
如果您想快速抓取数据并且不使用太多资源,我通常使用带会话的请求。要抓取这样的网站,您应该打开一个现代网络浏览器(Firefox,Chrome)并使用该浏览器的网络工具(通常位于开发人员工具中或通过右键单击检查元素)。记录网络后,您可以与网页交互以查看与服务器的连接。在示例搜索中,他们可能会使用建议,例如
https://suggest.example.com.au/smart-suggest?query=4000&n=7®ions=false
然后的响应可能是 JSON 建议的结果。一旦您 select 提出建议,您就可以提交带有该搜索参数的请求,例如
https://www.example.com.au/find-agent/agents/petrie-terrace-qld-4000
代理的 URL 将在 HTML 页面中,您只需向每个页面单独发送请求以使用 BeautifulSoup.
获取信息
您可能想尝试一下 Node 和 Jquery。我曾经一直使用 Python,但一段时间后它变得凌乱且难以维护。
使用节点,您可以将页面 HTML 转换为 DOM 对象,然后使用 Jquery 非常轻松地抓取所有数据。我在这里为 imdb 做了这个:“使用 JQuery 和 NodeJS 来抓取网络” @asimmittal https://medium.com/@asimmittal/using-jquery-nodejs-to-scrape-the-web-9bb5d439413b
你可以修改这个来抓取yelp
我是 python 的新手,刚刚开始 python 网络抓取。我必须从这个 realtor site
中抓取数据我需要根据 real-state agency 收集所有细节 op read-state agents; 对于此 在网络浏览器上,我必须遵循以下说明
- 转到this site
- 点击代理办公室按钮,在搜索框中输入 4000 pin,然后提交。
- 然后我们得到 机构的列表。
- 转到我们的团队选项卡,然后我们会找到他们的代理人。
- 然后我们必须去每个代理页面并记录他们的信息。
谁能告诉我如何处理这个问题。制作这种刮板的最佳方法是什么。
我是否必须使用 selenium 来与页面交互。
我曾使用 request、BeautifulSoup 和使用 mechanize[=39 提交的简单表单=]
我建议在搜索网站上使用 Selenium 或 Requests with session,Selenium 的优点是它可能会工作,但速度会很慢。对于 Selenium,您应该只使用 Selenium IDE(Firefox 附加)记录您所做的事情,然后从网页获取 HTML 并使用 beautifulsoup 解析数据。
如果您想快速抓取数据并且不使用太多资源,我通常使用带会话的请求。要抓取这样的网站,您应该打开一个现代网络浏览器(Firefox,Chrome)并使用该浏览器的网络工具(通常位于开发人员工具中或通过右键单击检查元素)。记录网络后,您可以与网页交互以查看与服务器的连接。在示例搜索中,他们可能会使用建议,例如
https://suggest.example.com.au/smart-suggest?query=4000&n=7®ions=false
然后的响应可能是 JSON 建议的结果。一旦您 select 提出建议,您就可以提交带有该搜索参数的请求,例如
https://www.example.com.au/find-agent/agents/petrie-terrace-qld-4000
代理的 URL 将在 HTML 页面中,您只需向每个页面单独发送请求以使用 BeautifulSoup.
获取信息您可能想尝试一下 Node 和 Jquery。我曾经一直使用 Python,但一段时间后它变得凌乱且难以维护。
使用节点,您可以将页面 HTML 转换为 DOM 对象,然后使用 Jquery 非常轻松地抓取所有数据。我在这里为 imdb 做了这个:“使用 JQuery 和 NodeJS 来抓取网络” @asimmittal https://medium.com/@asimmittal/using-jquery-nodejs-to-scrape-the-web-9bb5d439413b
你可以修改这个来抓取yelp