2017-03-02 4 views
0

他のタイプのcssセレクタとxpathを試しましたので、私はライブラリを間違って使用している可能性がありますが、そうでなければ教えてくれない文書はありません。 find_allのような他のbs4関数も試しましたが、多くの場合、他の結果は返されません。どんなタイプの助けでも感謝します、乾杯!Beautifulsoupが不要な文字を含むスクラップURLを表示する理由

コード:

import bs4 as bs 
    from requests import get 

    query = input('Please Enter Your Topic of intrest: ') 

    first_part = query.replace(" ", "%20") 
    second_part = query.replace(" ", "+") 
    results= "0" 

    num_of_pages = int(input('How many pages do you want scraped? ')) 

    for i in range(num_of_pages): 
    results= int(results) 
    results += 10 

    gsearch_url = "https://www.google.com/search?q={}#q={}%3F&start={}&*".format(first_part, second_part, results) 

    sauce = get(gsearch_url) 

    soup = bs.BeautifulSoup(sauce.text, 'lxml') 

    for url in soup.select('.r a'): 
     print(url.get('href')) 

戻る:

/url?q=http://www.codingdojo.com/blog/9-most-in-demand-programming-languages-of-2016/&sa=U&ved=0ahUKEwja3a21w7fSAhWSZiYKHdLGA9gQFggdMAI&usg=AFQjCNFmDl_1epVQRmDfc4y5MWFeNvrPQg 
    /url?q=https://fossbytes.com/best-popular-programming-languages-2017/&sa=U&ved=0ahUKEwja3a21w7fSAhWSZiYKHdLGA9gQFgghMAM&usg=AFQjCNEKhYqx1FbKl_Wu-9EoMYd3e9i_Dw 
    /url?q=http://www.bestprogramminglanguagefor.me/&sa=U&ved=0ahUKEwja3a21w7fSAhWSZiYKHdLGA9gQFggnMAQ&usg=AFQjCNHmbzuLwFo_egaWnbXSOW4p-Fva3g 
    /url?q=http://www.codingdojo.com/blog/9-most-in-demand-programming-languages-of-2016/&sa=U&ved=0ahUKEwja3a21w7fSAhWSZiYKHdLGA9gQFggyMAU&usg=AFQjCNFmDl_1epVQRmDfc4y5MWFeNvrPQg 
    etc.... 
+1

私はあなたの問題を理解していません。あなたの希望する返品(結果)を明記し、コードを正しく表示してください。 –

答えて

2

まずは、Googleの検索結果をこすることはサービスの任期を壊します。だから、インターネット上のどこかで、偉大なアルファベットが指を振って、その眉をつぶす。ええ、あなたはおそらく、ある時点でcaptchaで叩かれるでしょう。

次に、ahem残念なことに残っている学問的好奇心を解決するために、結果はBeautifulSoupに起因していません。それは実際にGoogleが返すものです。 print(soup)を実行し、htmlを閲覧することで確認できます。 hrefのすべてがあなたがプリントしているものとまったく同じであることがわかります。

これはブラウザで表示されているものと異なるのはなぜですか? javascriptの魔法!どちらもrequestsライブラリでは処理できないため、すべてのクライアント側の処理がなくても結果が表示されます。

関連する問題