Python 重复抓取网站的最佳方法
我想从包含连接价格的网站(如航空公司网站)中提取数据。他们没有API我想让工具在页面上的表格中填写日期、时间、出发地点和目的地。在此之后,必须提交表单,然后显示结果。我想为不同的选项刮取日期,并在同一页上重复相同的过程,使用不同的数据、时间等值 我已经到处阅读并了解了Scrapy,但我不确定它是否有点超出了这个目的,因为我不需要一个爬虫,但只是想刮同一页很多次。Python 重复抓取网站的最佳方法,python,web-scraping,beautifulsoup,scrapy,python-requests,Python,Web Scraping,Beautifulsoup,Scrapy,Python Requests,我想从包含连接价格的网站(如航空公司网站)中提取数据。他们没有API我想让工具在页面上的表格中填写日期、时间、出发地点和目的地。在此之后,必须提交表单,然后显示结果。我想为不同的选项刮取日期,并在同一页上重复相同的过程,使用不同的数据、时间等值 我已经到处阅读并了解了Scrapy,但我不确定它是否有点超出了这个目的,因为我不需要一个爬虫,但只是想刮同一页很多次。 Beautifulsoup&Requests似乎也是一个很好的组合。因为我只有硒的使用经验,我想知道什么是最适合我的解决方案我正在寻找
Beautifulsoup&Requests似乎也是一个很好的组合。因为我只有硒的使用经验,我想知道什么是最适合我的解决方案我正在寻找一个基于Python的解决方案。BeautifulSoup&Requests是一个简单的解决方案:
import requests
from bs4 import BeautifulSoup
import time
def get_soup(url=None, data=None):
r = requests.post(url, data=data)
soup = BeautifulSoup(r.text)
return soup
def scraper(soup):
# Write your code to scrape the information you need from the page
return data
def main(url=None, data=None):
soup = get_soup(url, data)
data_you_want = scraper(soup)
if __name__ == '__main__':
url = 'www.somewebsite.com'
datas = [{'form_name_1': 'form_input_1', 'form_name_2': 'form_input_2', ...}, {'form_name_1': 'form_input_1', ...]
# Time to wait between each scrape
wait_time = 5
for data in datas:
main(url, data)
time.sleep(wait_time)
***请注意,像航空公司网站这样的网站可能会阻止scraper我想看看Selenium!它将允许您在网站上编写填写表单的脚本,您可以从中解析结果。我使用了Selenium,但我正在寻找更大规模的内容。如果可能的话,一个可以同时发出多个请求的工具。将selenium封装在多个线程中……您可能还想看看哪个工具可以使管理多个爬行器变得更容易。您还可以使用可视化方式构建简单的刮擦式蜘蛛。如前所述,这个问题过于基于观点。如果你要专注于更客观的标准,而不是要求人们为你选择工具,询问这些工具与对你来说重要的既定标准相比如何,那么答案可能足够客观,可以针对主题