我創建了一個腳本,它可以從錨標記中獲取href
鏈接以及文本。python中for循環的用法
這裏是我的Python代碼:
import re
import cssselect
from lxml import html
mainTree = html.fromstring('<a href="https://www.example.com/laptops/" title="Laptops"><div class="subCategoryItem">Laptops <span class="cnv-items">(229)</span></div></a>')
for links in mainTree.cssselect('a'):
urls = [links.get('href')]
texts = re.findall(re.compile(u'[A-z- &]+'), links.text_content())
for text in texts:
print (text)
for url in urls:
print (url)
輸出:
Laptops
https://www.example.com/laptops/
而不是使用兩個for循環我可以做到這一點的?
for text, url in texts, urls:
print (text)
print (url)
當您試用它時發生了什麼? –
@NathanielFord我得到這個:「ValueError:需要多個值才能解包」。 –
我認爲這是一個XY問題。你所問的關於組合循環的問題確實通過@ kmad1729所描述的'zip'來回答。但是,我不知道你爲什麼在循環。每個''標籤只會有一個URL,因此如果在're.findall'搜索中獲得多個匹配,我認爲'zip'不會執行您想要的操作(除第一個結果之外的所有結果都將被忽略)。也許你只是想從'text_content'調用返回的字符串中過濾出不適當的字符? – Blckknght