[英]Python Web Scraping 'None'
我正在嘗試從站點https://10times.com/losangeles-us/technology/conferences抓取事件數據。
下面的代碼繼續抓取在主登錄頁面上找到的事件數據和事件鏈接。
import pandas as pd
import bs4 as bs
import urllib.request
source = urllib.request.urlopen('https://10times.com/losangeles-us/technology/conferences').read()
soup = bs.BeautifulSoup(source,'html.parser')
aa = []
bb = []
#---Get Event Data---
table = soup.find('tbody')
table_rows = table.find_all('tr') #find table rows (tr)
for x in table_rows:
data = x.find_all('td') #find table data
row = [x.text for x in data]
if len(row) > 2: #Exlcudes rows with only event name/link, but no data.
aa.append(row)
df_event = pd.DataFrame(aa, columns=['Date', 'Event Name', 'Venue', 'Description', 'Type', 'Unnamed:'])
df_event.columns = ['Date', 'Event Name', 'Venue', 'Description', 'Type', 'Interested/Following Count']
#---Get Links---
h2 = soup.find_all('h2')
for i in h2:
links = i.a['href']
bb.append(links)
df_link = pd.DataFrame(bb)
df_link.columns = ['Links']
#---Combines dfs---#
df = pd.concat([df_event,df_link],sort=False, axis=1)
df.index += 1
#--Export to HTML---
df.to_html('10times_Scrape.html',render_links=True)
我現在想要 go 到我拉出的每個事件鏈接並抓取頁面上的地址/完整事件描述。 示例鏈接: https://10times.com/microsoft-business-applications-summit-anaheim
事件描述和地址都可以在 P 標簽中找到。 但是,當我在鏈接中閱讀時,我只是返回 None's.. 我在下面使用正確的 div class? 我究竟做錯了什么? 我想查看 'class':'col-md-6' 並提取地址。
#---Get Address---
for i in bb:
soup2 = bs.BeautifulSoup(i, 'html.parser')
text2 = soup2.find('div', attrs={'class':'col-md-6'})
print(text2)
好像你錯過了內部鏈接的urllib
獲取。
#---Get Address---
for i in bb:
inner_source = urllib.request.urlopen(i).read()
soup2 = bs.BeautifulSoup(inner_source, 'html.parser')
text2 = soup2.find('div', 'col-md-6')
print(text2)
還可以使用find
/ find_all
傳遞 class 作為第二個位置參數。 並且只是為了強制find
只會返回第一次出現,即使有很多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.