リクエストを使用してウェブサイトからさまざまな会社のリンクを取得することはできません

MITHU

Webページからさまざまな会社のリンクを取得しようとしていますが、試したスクリプトで以下のエラーがスローされます。Chrome開発ツールでは、httpリクエストidsを使用してさまざまな企業の情報を取得できることがわかりましたpostただし、取得できればids、このリンク'https://angel.co/startups/{}'利用して文字列形式のIDを追加し、本格的な企業リンクを作成することができます。

ウェブページのリンク

私は試しました:

import requests

link = 'https://angel.co/company_filters/search_data'
base = 'https://angel.co/startups/{}'

payload={'sort':'signal','page':'2'}

r = requests.post(link,data=payload,headers={
    'x-requested-with':'XMLHttpRequest'
    'User-Agent":"Mozilla/5.0'
    })
print(r.json())

上記のスクリプトは、次のエラーをスローします。

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

リクエストを使用して、前述のサイトからさまざまな企業のリンクを取得するにはどうすればよいですか?

アンドレイ・ケセリー

パラメータget_soup(page)を受け取り、関連データを含むスープを返す関数を作成しましたこの関数をループに入れて、さらに多くのページをスクレイプすることができます。page1

import requests
from bs4 import BeautifulSoup

def get_soup(page=1):
    headers = {
        'Accept-Language'           : 'en-US,en;q=0.5',
        'Host'                      : 'angel.co',
        'User-Agent'                : 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0'
    }

    payload={'sort':'signal','page':str(page)}

    url = 'https://angel.co/company_filters/search_data'

    data = requests.get(url, headers=headers, data=payload).json()

    new_url = 'https://angel.co/companies/startups?' + '&'.join('ids[]={}'.format(_id) for _id in data['ids'])
    new_url += '&sort=' + data['sort']
    new_url += '&total=' + str(data['total'])
    new_url += '&page=' + str(data['page'])
    new_url += '&new=' + str(data['new']).lower()
    new_url += '&hexdigest=' + data['hexdigest']

    data = requests.get(new_url, headers=headers).json()
    return BeautifulSoup(data['html'], 'lxml')

soup = get_soup(1)

rows = []
for company, joined, location, market, website, company_size, stage, raised in zip(soup.select('.column.company'),
                            soup.select('.column.joined .value'),
                            soup.select('.column.location .value'),
                            soup.select('.column.market .value'),
                            soup.select('.column.website .value'),
                            soup.select('.column.company_size .value'),
                            soup.select('.column.stage .value'),
                            soup.select('.column.raised .value')):

    company = company.get_text(strip=True, separator=" ")
    joined = joined.get_text(strip=True)
    location = location.get_text(strip=True)
    market = market.get_text(strip=True)
    website = website.get_text(strip=True)
    company_size = company_size.get_text(strip=True)
    stage = stage.get_text(strip=True)
    raised = raised.get_text(strip=True)

    rows.append([company, joined, location, market, website, company_size, stage, raised])

from textwrap import shorten
print(''.join('{: <25}'.format(shorten(d, 25)) for d in ['Company', 'Joined', 'Location', 'Market', 'Website', 'Company Size', 'Stage', 'Raised']))
print('-' * (25*8))
for row in rows:
    print(''.join('{: <25}'.format(shorten(d, 25)) for d in row))

プリント:

Company                  Joined                   Location                 Market                   Website                  Company Size             Stage                    Raised                   
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Nutanix Your [...]       May ’14                  San Jose                 Virtualization           nutanix.com              1001-5000                IPO                      $312,200,000             
EverFi                   Oct ’12                  Washington DC            Education                everfi.com               51-200                   Series C                 $61,000,000              
Butter Make friends [...]Jun ’14                  San Francisco            Messaging                getbutter.me             1-10                     Seed                     $371,500                 
Fluent The future [...]  Mar ’12                  Sydney                   Curated Web              fluent.io                -                        -                        -                        
Belly                    Sep ’12                  Chicago                  Small and Medium [...]   bellycard.com                                     Series B                 $24,975,000              
Autotech Ventures [...]  Apr ’14                  Menlo Park               Internet of Things       autotechvc.com           1-10                     -                        -                        
Oscar Health [...]       Jun ’14                  Tempe                    Technology               hioscar.com              1001-5000                                         $1,267,500,000           
Tovala Smart oven [...]  Feb ’16                  Chicago                  Home Automation          tovala.com               11-50                    Series A                 $10,800,000              
GiftRocket Online [...]  Mar ’16                  San Francisco            Gift Card                giftrocket.com           1-10                     Seed                     $520,000                 
Elemeno Health B2B [...] Apr ’16                  Oakland                  Training                 elemenohealth.com        1-10                     Seed                     $1,635,000               
Sudo Technologies [...]  Apr ’16                  Menlo Park               -                        sudo.ai                                           -                        -                        
Stypi                    Sep ’16                  -                        -                                                                          Acquired                 -                        
Amazon Alexa Amazon [...]Sep ’16                  Cambridge                Speech Recognition       developer.amazon.com     11-50                    -                        -                        
Altos Ventures A [...]   Oct ’16                  Menlo Park               Technology               altos.vc                 1-10                     -                        -                        
Flirtey Making [...]     Oct ’16                  Reno                     -                        flirtey.com              11-50                    Series A                 $16,000,000              
SV Liquidity Fund [...]  Oct ’16                  San Francisco            B2B                      svlq.io                  1-10                     -                        -                        
Princeton Ventures [...] Jan ’17                  Princeton                Technology               princetonventures.com    1-10                     -                        -                        
hulu - Beijing [...]     Jan ’17                  Beijing                  TV Production            hulu.com                 -                        -                        -                        
Distributed Systems [...]Jan ’17                  San Francisco            Identity                 pavlov.ai                1-10                     -                        -                        
Fetch Marketplace [...]  May ’17                  Atlanta                  Technology               fetchtruck.com           1-10                     Seed                     -                        

編集:リンクだけを取得するには、次のことができます。

soup = get_soup(1)

for a in soup.select('.website a[href]'):
    print(a['href'])

プリント:

http://www.fuelpowered.com
http://www.slide.com
http://www.mparticle.com
http://www.matter.io
http://www.smartling.com
https://stensul.com
https://avametric.com/
https://ledgerinvesting.com

http://www.relativityspace.com
http://teamdom.co
http://www.wonderschool.com
http://www.upcall.com
http://focal.systems
https://asktetra.com
https://www.subdreamstudios.com/
http://www.stedi.com
http://www.magnarapp.com/
http://www.kylie.ai
http://clipboardhealth.com

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リクエストを使用してウェブページから特定のフィールドの値を取得することはできません

分類Dev

Pythonでbs4を使用して、ウェブサイトのさまざまなリンクから弁護士の詳細を取得する

分類Dev

ウェブサイトから複数回リクエストすることはできません

分類Dev

ジャクソンを使用して、オブジェクトの値(なしdelegate-またはプロパティベースクリエイター)からデシリアライズすることはできません

分類Dev

Webサイトからの公開リクエストに応じてアイテムをレンダリングすることを許可できますが、ブラウザーで直接表示することはできませんか?

分類Dev

ウェブサイトのさまざまなリンクから弁護士の詳細を取得する

分類Dev

リクエストを使用してウェブサイトから一部の番号を取得できません

分類Dev

リクエストを使用してウェブサイトから一部の番号を取得できません

分類Dev

リクエストを使用してウェブサイトから一部の番号を取得できません

分類Dev

リクエストを使用して次のページからのさまざまなケースのリンクを解析できません

分類Dev

リクエスト後のnodejsを使用してリダイレクトすることはできません

分類Dev

エントリオブジェクトからテキストを取得しようとすると、このエラーが発生するのはなぜですか?Tkinter AttributeError:CustomClassインスタンスに属性 'entry'がありませんか?

分類Dev

複数のサブクエリを使用し、それらの結果をメインクエリの条件として使用する場合、クエリのパフォーマンスを向上させることはできますか?

分類Dev

C#はウェブサイトまたはサービスからhttpリクエストを行うことができません

分類Dev

リクエストを使用してウェブページから名前を取得できません

分類Dev

RFのAppiumライブラリからClickElementを使用しているときに、「 'Nonetype'オブジェクトは反復できません」を取得する

分類Dev

Beautiful Soupを使用してHTMLページから文字列として各リンクを見つけるにはどうすればよいですか?(findAll関数はこのウェブサイトではうまく見つかりません)

分類Dev

解析-「includeKey」を使用してクエリを実行すると、適切なサブクラスのオブジェクトが取得されません

分類Dev

フラグメントを「クエリ」タイプのオブジェクトとしてここに拡散することはできません

分類Dev

固定されていない列のクロス集計をサブクエリとして使用することはできません。(エラー3637)

分類Dev

System.Linq.Dynamic.Coreを使用して、メンバーディクショナリを持つオブジェクトのリストをクエリする場合、複数の結果を取得することはできません

分類Dev

リクエストを使用して次のページから名前を取得することはできません

分類Dev

`...`を使用して既存のオブジェクトから新しいオブジェクトを作成するときのエラー:この環境では、割り当てのソースはオブジェクトでなければなりません

分類Dev

アプリをChromeウェブストアにアップロードできません-「このアイテムはアプリではありません。マニフェストからアプリセクションを削除してください。」

分類Dev

iOS:サイズクラス(または他のソリューション)を適切に使用して、さまざまな縦向きと横向きのレイアウトを設定するにはどうすればよいですか?

分類Dev

インテントサービスをライブラリプロジェクトに入れて、さまざまなアプリで使用できますか?

分類Dev

Cからの名前付きパイプを使用してシェルスクリプトと通信することはできません

分類Dev

メディアクエリはウェブサイトをレスポンシブにします。しかし、それは私がブラウザをドラッグしているときだけではありません

分類Dev

FirebaseStreamクエリからオブジェクトのリストを返すことができません

Related 関連記事

  1. 1

    リクエストを使用してウェブページから特定のフィールドの値を取得することはできません

  2. 2

    Pythonでbs4を使用して、ウェブサイトのさまざまなリンクから弁護士の詳細を取得する

  3. 3

    ウェブサイトから複数回リクエストすることはできません

  4. 4

    ジャクソンを使用して、オブジェクトの値(なしdelegate-またはプロパティベースクリエイター)からデシリアライズすることはできません

  5. 5

    Webサイトからの公開リクエストに応じてアイテムをレンダリングすることを許可できますが、ブラウザーで直接表示することはできませんか?

  6. 6

    ウェブサイトのさまざまなリンクから弁護士の詳細を取得する

  7. 7

    リクエストを使用してウェブサイトから一部の番号を取得できません

  8. 8

    リクエストを使用してウェブサイトから一部の番号を取得できません

  9. 9

    リクエストを使用してウェブサイトから一部の番号を取得できません

  10. 10

    リクエストを使用して次のページからのさまざまなケースのリンクを解析できません

  11. 11

    リクエスト後のnodejsを使用してリダイレクトすることはできません

  12. 12

    エントリオブジェクトからテキストを取得しようとすると、このエラーが発生するのはなぜですか?Tkinter AttributeError:CustomClassインスタンスに属性 'entry'がありませんか?

  13. 13

    複数のサブクエリを使用し、それらの結果をメインクエリの条件として使用する場合、クエリのパフォーマンスを向上させることはできますか?

  14. 14

    C#はウェブサイトまたはサービスからhttpリクエストを行うことができません

  15. 15

    リクエストを使用してウェブページから名前を取得できません

  16. 16

    RFのAppiumライブラリからClickElementを使用しているときに、「 'Nonetype'オブジェクトは反復できません」を取得する

  17. 17

    Beautiful Soupを使用してHTMLページから文字列として各リンクを見つけるにはどうすればよいですか?(findAll関数はこのウェブサイトではうまく見つかりません)

  18. 18

    解析-「includeKey」を使用してクエリを実行すると、適切なサブクラスのオブジェクトが取得されません

  19. 19

    フラグメントを「クエリ」タイプのオブジェクトとしてここに拡散することはできません

  20. 20

    固定されていない列のクロス集計をサブクエリとして使用することはできません。(エラー3637)

  21. 21

    System.Linq.Dynamic.Coreを使用して、メンバーディクショナリを持つオブジェクトのリストをクエリする場合、複数の結果を取得することはできません

  22. 22

    リクエストを使用して次のページから名前を取得することはできません

  23. 23

    `...`を使用して既存のオブジェクトから新しいオブジェクトを作成するときのエラー:この環境では、割り当てのソースはオブジェクトでなければなりません

  24. 24

    アプリをChromeウェブストアにアップロードできません-「このアイテムはアプリではありません。マニフェストからアプリセクションを削除してください。」

  25. 25

    iOS:サイズクラス(または他のソリューション)を適切に使用して、さまざまな縦向きと横向きのレイアウトを設定するにはどうすればよいですか?

  26. 26

    インテントサービスをライブラリプロジェクトに入れて、さまざまなアプリで使用できますか?

  27. 27

    Cからの名前付きパイプを使用してシェルスクリプトと通信することはできません

  28. 28

    メディアクエリはウェブサイトをレスポンシブにします。しかし、それは私がブラウザをドラッグしているときだけではありません

  29. 29

    FirebaseStreamクエリからオブジェクトのリストを返すことができません

ホットタグ

アーカイブ