Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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
Python 重复抓取网站的最佳方法_Python_Web Scraping_Beautifulsoup_Scrapy_Python Requests - Fatal编程技术网

Python 重复抓取网站的最佳方法

Python 重复抓取网站的最佳方法,python,web-scraping,beautifulsoup,scrapy,python-requests,Python,Web Scraping,Beautifulsoup,Scrapy,Python Requests,我想从包含连接价格的网站(如航空公司网站)中提取数据。他们没有API我想让工具在页面上的表格中填写日期、时间、出发地点和目的地。在此之后,必须提交表单,然后显示结果。我想为不同的选项刮取日期,并在同一页上重复相同的过程,使用不同的数据、时间等值 我已经到处阅读并了解了Scrapy,但我不确定它是否有点超出了这个目的,因为我不需要一个爬虫,但只是想刮同一页很多次。 Beautifulsoup&Requests似乎也是一个很好的组合。因为我只有硒的使用经验,我想知道什么是最适合我的解决方案我正在寻找

我想从包含连接价格的网站(如航空公司网站)中提取数据。他们没有API我想让工具在页面上的表格中填写日期、时间、出发地点和目的地。在此之后,必须提交表单,然后显示结果。我想为不同的选项刮取日期,并在同一页上重复相同的过程,使用不同的数据、时间等值

我已经到处阅读并了解了Scrapy,但我不确定它是否有点超出了这个目的,因为我不需要一个爬虫,但只是想刮同一页很多次。
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封装在多个线程中……您可能还想看看哪个工具可以使管理多个爬行器变得更容易。您还可以使用可视化方式构建简单的刮擦式蜘蛛。如前所述,这个问题过于基于观点。如果你要专注于更客观的标准,而不是要求人们为你选择工具,询问这些工具与对你来说重要的既定标准相比如何,那么答案可能足够客观,可以针对主题