Python 什么是浏览网页的最好(最快)方法?

Python 什么是浏览网页的最好(最快)方法?,python,selenium,web-scraping,beautifulsoup,Python,Selenium,Web Scraping,Beautifulsoup,我试图从谷歌专利中搜集数据,发现执行时间太长了。我怎样才能提高速度?运行8000项专利已经花了7个小时 这是一个专利的例子 我需要从下表中获取数据并将其写入csv文件。我认为瓶颈在于WebDriverWait(driver,10)。直到(EC.presence\u of_元素位于((By.XPATH,“//div[@class='table style scope patent result']))) 这是必要的还是我可以使用find_elements_by_css_选择器并检查是否返回任何内容

我试图从谷歌专利中搜集数据,发现执行时间太长了。我怎样才能提高速度?运行8000项专利已经花了7个小时

这是一个专利的例子

我需要从下表中获取数据并将其写入csv文件。我认为瓶颈在于
WebDriverWait(driver,10)。直到(EC.presence\u of_元素位于((By.XPATH,“//div[@class='table style scope patent result'])))

这是必要的还是我可以使用find_elements_by_css_选择器并检查是否返回任何内容

#...
from selenium.webdriver.support import expected_conditions as EC
#...

##  read file of patent numbers and initiate chrome

url = "https://patents.google.com/patent/US6403086B1/en?oq=US6403086B1"

for x in patent_number:

    #url = new url with new patent number similar to above

    try: 
        driver.get(url) 
        driver.set_page_load_timeout(20) 
    except: 
        #--write to csv
        continue

    if "404" in driver.title: #patent number not found
        #--write to csv
        continue

    try: 
        WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='table style-scope patent-result']"))
        )
    except: 
        #--write to csv
        continue


    ##  rest of code to get data from tables and write to csv
有没有更有效的方法来查找专利页上是否存在这些表格?或者如果我使用BeautifulSoup会有什么不同


我对WebSurvivin很陌生,所以任何帮助都是非常值得赞赏的:(

< p>)不确定你在跟踪哪些表,但是考虑到你可以使用请求和熊猫来抓取表,以及会话来重新使用连接。

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd

codes = ['US6403086B1','US6403086B1'] #patent numbers to come from file
with requests.Session() as s:
    for code in codes:
        url = 'https://patents.google.com/patent/{}/en?oq={}'.format(code, code)
        r = s.get(url)
        tables = pd.read_html(str(r.content))
        print(tables)  #example only. Remove later
       #here would add some tidying up to tables e.g. dropNa rows, replace NaN with '' .... 
       # rather than print... whatever steps to store info you want until write out

不确定你在哪一个表之后,但是考虑你可以使用请求和熊猫抓住表,以及会话重用连接。< /P>

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd

codes = ['US6403086B1','US6403086B1'] #patent numbers to come from file
with requests.Session() as s:
    for code in codes:
        url = 'https://patents.google.com/patent/{}/en?oq={}'.format(code, code)
        r = s.get(url)
        tables = pd.read_html(str(r.content))
        print(tables)  #example only. Remove later
       #here would add some tidying up to tables e.g. dropNa rows, replace NaN with '' .... 
       # rather than print... whatever steps to store info you want until write out

你要两张桌子吗?专利引用和非专利引用?第页所有的桌子?你要两张桌子吗?专利引用和非专利引用?第页的所有表?我想从所有表中获取数据。我在试着理解BeautifulSoup和Selenium的区别。在这个用例中,BeautifulSoup比selenium有什么优势?我什么时候可以使用一个而不是另一个呢?selenium允许您自动化浏览器。。。javascript可以在动态加载内容的情况下在页面上呈现,您可以与站点控件(例如按钮等)交互。请求速度要快得多,但由于没有浏览器,您将失去与网页交互的能力。此外,javascript加载的内容也不会出现。在您的情况下,请求速度更快。然后使用BeautifulSoup和lxml解析响应对象内容。上面的答案将打印所有表。你可以决定用它们做什么。每个表都作为返回列表中的数据框返回。谢谢!有没有一种方法也能抓住表格的标题?例如,我需要表格前面的“专利引用(1)”。我想用这些标题来确定存储某些表数据的位置。我想从所有表中获取数据。我在试着理解BeautifulSoup和Selenium的区别。在这个用例中,BeautifulSoup比selenium有什么优势?我什么时候可以使用一个而不是另一个呢?selenium允许您自动化浏览器。。。javascript可以在动态加载内容的情况下在页面上呈现,您可以与站点控件(例如按钮等)交互。请求速度要快得多,但由于没有浏览器,您将失去与网页交互的能力。此外,javascript加载的内容也不会出现。在您的情况下,请求速度更快。然后使用BeautifulSoup和lxml解析响应对象内容。上面的答案将打印所有表。你可以决定用它们做什么。每个表都作为返回列表中的数据框返回。谢谢!有没有一种方法也能抓住表格的标题?例如,我需要表格前面的“专利引用(1)”。我想使用这些标题来确定存储某些表数据的位置。