python 中关于用beautifulsoup4库解析网页源代码标签的问题,急求解答

2024-12-21 23:03:19
推荐回答(2个)
回答1:

以百度为例

# -*- coding:utf-8 -*-
import requests
import urlparse
import os
from bs4 import BeautifulSoup
def process(url):
    headers = {'content-type': 'application/json',
           'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}
    pageSourse =  requests.get(url, headers=headers).text
    page_soup = BeautifulSoup(pageSourse)
    a_all = page_soup.findAll("a")
    link_urls=[i.get('href') for i in a_all]#有些是javascript触发事件,过滤方法自己写下。
    img_all = page_soup.findAll("img")
    img_urls=[i.get("src") for i in img_all]
    print link_urls,img_urls
    return (link_urls, img_urls)
process("https://www.baidu.com")

结果如下:

[u'/', u'javascript:;', u'javascript:;', u'javascript:;', u'/', u'javascript:;', u'https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F', u'http://www.nuomi.com/?cid=002540', u'http://news.baidu.com', u'http://www.hao123.com', u'http://map.baidu.com', u'http://v.baidu.com', u'http://tieba.baidu.com', u'https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F', u'http://www.baidu.com/gaoji/preferences.html', u'http://www.baidu.com/more/', u'http://news.baidu.com/ns?cl=2&rn=20&tn=news&word=', u'http://tieba.baidu.com/f?kw=&fr=wwwt', u'http://zhidao.baidu.com/q?ct=17&pn=0&tn=ikaslist&rn=10&word=&fr=wwwt', u'http://music.baidu.com/search?fr=ps&ie=utf-8&key=', u'http://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=', u'http://v.baidu.com/v?ct=301989888&rn=20&pn=0&db=0&s=25&ie=utf-8&word=', u'http://map.baidu.com/m?word=&fr=ps01000', u'http://wenku.baidu.com/search?word=&lm=0&od=0&ie=utf-8', u'//www.baidu.com/more/', u'/', u'//www.baidu.com/cache/sethelp/help.html', u'http://home.baidu.com', u'http://ir.baidu.com', u'http://www.baidu.com/duty/', u'http://jianyi.baidu.com/'] [u'//www.baidu.com/img/bd_logo1.png', u'//www.baidu.com/img/baidu_jgylogo3.gif']

有问题可指出,满意请采纳

回答2:

以百度为例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# -*- coding:utf-8 -*-
import requests
import urlparse
import os
from bs4 import BeautifulSoup
def process(url):
headers = {'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}
pageSourse = requests.get(url, headers=headers).text
page_soup = BeautifulSoup(pageSourse)
a_all = page_soup.findAll("a")
link_urls=[i.get('href') for i in a_all]#有些是javascript触发事件,过滤方法自己写下。
img_all = page_soup.findAll("img")
img_urls=[i.get("src") for i in img_all]
print link_urls,img_urls
return (link_urls, img_urls)
process("https://www.baidu.com")