簡體   English   中英

Python,從數據庫查詢列表中刪除字符,URL解析

[英]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.

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