簡體   English   中英

漂亮的湯網抓取返回 None-Python

[英]Beautiful soup web scraping returning None-Python

我有一個電影列表,我想從 Google 中刪除這些類型。 我已經構建了這段代碼:

import requests
from bs4 import BeautifulSoup

list=['Se7en','Cinema Paradiso','The Shining','Toy Story 3','Capernaum']
gen2 = {}
for i in list:
  user_query = i +'movie genre'
  URL = 'https://www.google.co.in/search?q=' + user_query
  headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36'}
  page = requests.get(URL, headers=headers)
  soup = BeautifulSoup(page.content, 'html.parser')
  c = soup.find(class_='EDblX DAVP1')
  print(c)
  if c != None:
    genres = c.findAll('a')
    gen2[i]= genres

但它返回一個空字典,所以我一一檢查它並工作,例如:

import requests
from bs4 import BeautifulSoup

user_query = 'Se7en movie genre' 
URL = "https://www.google.co.in/search?q=" + user_query
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36'}
page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
v = soup.find(class_='KKHQ8c')
h = {}
genres = v.findAll('a')
for genre in genres:
  h['Se7en']=genre

所以我發現在 for 循環中變量 c 返回 None。 我不知道為什么! 它只在循環內返回 None 。

目前,您的 URL 的格式為URL

所以返回的結果(谷歌)對於所有電影並不准確。 您可以將其更改為

`for i in list:
  i="+".join(i.split(" "));          
  user_query = i + "+movie+genre"
  URL = 'https://www.google.com/search?q=+'+user_query`

此外,屬於單一類型的電影(如天堂影院)位於類名為“Z0LcW”的 div 中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM