如何使用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