Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Beauty Soup在Python中解析网页_Python_Html_Web Scraping_Beautifulsoup - Fatal编程技术网

使用Beauty Soup在Python中解析网页

使用Beauty Soup在Python中解析网页,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,这是我用BeautifulSoup抓取的网页源代码 1. 112 3510 //重复模式 <tr > <td> 2 </td> <td style="cipher1"> 但是有了这个,我得到了“cipher7”的多次出现,因为它在网页中多次出现 所以我可以用这个 <td style="cipher1">... 。。。 因为它是我想要的东西所独有的 那么,如何修改我的代码才能做到这一点呢?您可

这是我用BeautifulSoup抓取的网页源代码


1.
112
3510
//重复模式

<tr >
 <td>
        2
 </td>
 <td style="cipher1">
但是有了这个,我得到了“cipher7”的多次出现,因为它在网页中多次出现

所以我可以用这个

 <td style="cipher1">...      
。。。
因为它是我想要的东西所独有的


那么,如何修改我的代码才能做到这一点呢?

您可以首先找到
td
标记(因为您说它是唯一的),然后从中找到指定的
a
标记

all_as = []
rows = soup.find_all('td', {'style':'cipher1'})
for row in rows:
    all_as.append(row.find_all('a', class_ = "cipher7"))

您可以使用方便的
select
方法,该方法将CSS选择器作为参数:

row = soup.select("td[style=cipher1] > a.cipher7")

我的意思是,这是在我想要的行之前。我做了你提到的,但现在输出只是第一次出现。它显示错误!(TypeError:列表索引必须是整数,而不是str“”)如果我使用这个f.write(row['title']+“\n”)@Jaskamalkainth-你能给我看一下完整的代码吗?至少对于您正在处理的此部分。使用gist.github.com,不要将其粘贴到评论中。
row = soup.select("td[style=cipher1] > a.cipher7")