如何使用beautiful soup爬取如下网页源码中的电影名称及链接

使用python3 bs4爬取电影天堂的最新电影http://www.dytt8.net/
可是爬出来都是网页数据,很乱,可以使用soup.findAll直接找到链接的标签进行提取<a herf=。。。吗?,我的代码如下:
import urllib.request
from bs4 import BeautifulSoup
html = urllib.request.urlopen('http://www.dytt8.net/')
bsObj = BeautifulSoup(html,'html.parser')
a = bsObj.findAll('div',{'class':'co_content8'})
list1 = []
for i in a:

j = i.findAll('a')

print(type(j))

print('###')

print(list1.append(str(j)))

print('list1 is :',list1)
print(type(list1))
print(len(list1))
for n in list1:

print(n.split(','))

网页部分源码如下:
图片描述

回答:

推荐使用CSS选择或者xpath、pyjquery
传统都用的正则,findall也可以,不过效果不好,

回答:

先定位到div下的ul,再用findall提取出ul下每条<a href....>
然后在对每条<a href.....>进行href属性的提取

可以看下这篇文章,讲BeautifulySoup使用的,希望有帮助

试下代码可行不

urls = []

hrefs = bsObj.find('div',class_="co_area2").ul.findall('a')

for each in hrefs:

urls.append['协议头'+each['href']]

print(urls)

回答:

可以使用soup.findAll直接找到链接的标签进行提取<a herf=。。。吗?
可以使用的 ,简单写个按href里有html提取的

# -*- coding: utf-8 -*-

import urllib.request,re

from bs4 import BeautifulSoup

html = urllib.request.urlopen('http://www.dytt8.net/')

bsObj = BeautifulSoup(html,'html.parser')

bsObj1 = bsObj.find_all('a',href=re.compile('/html'))

for i in bsObj1:

print (i['href'],i.string)

以上是 如何使用beautiful soup爬取如下网页源码中的电影名称及链接 的全部内容, 来源链接: utcz.com/a/164511.html

回到顶部