[英]Python, remove characters from database query list, url parse
我有個大問題,我真的不知道該怎么辦。 因此,我的數據庫有50行電影url。 例:
http://www.csfd.cz/hledat/?q=new+girl+s05e03
當我從數據庫執行查詢時,我將獲得以下列表:
['http://www.csfd.cz/hledat/?q=new+girl+s05e03'] ...
重點是從列表中獲取url並將其提供給將獲得html內容的函數(BeautifulSoup)
def csfd_content(url):
content = requests.get(url).content
soup = BeautifulSoup(content, "html.parser")
return soup
我這樣嘗試:
##CSFD BEGIN
cur.execute('Select search_name from movies')
urls = cur.fetchall()
for url in urls:
search_url = csfd_content(url)
結果是:找不到“ [”的連接適配器http://www.csfd.cz/hledat/?q=new+girl+s05e03 ']'那顯然是錯誤的url! 有人可以幫助我在沒有['']的情況下獲得正常的網址嗎?
要從游標訪問行:
https://docs.python.org/2/library/sqlite3.html
請參閱11.13.4節
摘錄:
sqlite3.Row類
Row實例用作Connection對象的高度優化的row_factory。 它試圖模仿其大多數功能中的元組。
它支持按列名和索引,迭代,表示形式,相等性測試和len()進行映射訪問。
如果兩個Row對象具有完全相同的列,並且它們的成員相等,則它們比較相等。
在2.6版中進行了更改:添加了迭代和相等性(可哈希性)。
在上面的問題中使用:
url['name of column in dbase']
這是發生,因為cursor.fetchall()
返回元組 (也可能是列表 )的列表 ,所以你傳遞一個元組requests.get()
時,它需要一個字符串。 要解決此問題,您需要將元組中的第一項傳遞給requests.get()
。 您可以使用url[0]
來做到這一點:
cur.execute('Select search_name from movies')
urls = cur.fetchall()
for url in urls:
search_url = csfd_content(url[0])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.