石家庄栾城区建设局网站,哪个软件可以看街道实景,国内买机票的网站建设,wordpress如何添加广告0.目录1.分析页面2.初步代码3.完整代码4.总结5.补充1.分析页面上一次我们讲了xpath获取豆瓣最新上映电影的海报#xff0c;这一次会分析如何使用BeautifulSoup获取。启程#xff1a;python爬虫之通过xpath获取豆瓣最新上映电影的海报zhuanlan.zhihu.com首先#xff0c;进入…0.目录1.分析页面2.初步代码3.完整代码4.总结5.补充1.分析页面上一次我们讲了xpath获取豆瓣最新上映电影的海报这一次会分析如何使用BeautifulSoup获取。启程python爬虫之通过xpath获取豆瓣最新上映电影的海报zhuanlan.zhihu.com首先进入豆瓣正在上映的页面右键查看源代码发现我们需要的海报url和电影名都在这个标签下面根据上一次的经验还需要添加范围 div idnowplaying 右键源代码2.初步代码# encoding: utf-8from bs4 import BeautifulSoupfrom urllib import requestimport requestsdef get_page(url):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36,Referer: https://movie.douban.com/,}response requests.get(url, headers)return response.textdef get_img(url):text get_page(url)# 创建BeautifulSoup对象soup BeautifulSoup(text, lxml)# 限制获取到的img标签在【正在上映】内new soup.find(div, {id: nowplaying})# 查找img标签trs new.find_all(img)for tr in trs:# 获取img标签下的src和alturl_img tr.attrs[src]name tr.attrs[alt]print(name)print(url_img)def main():url https://movie.douban.com/cinema/nowplaying/guangzhou/get_img(url)if __name__ __main__:main()展示运行结果的一部分3.完整代码可以发现已经获取到了我们想要的数据那么下一步就是根据url下载海报并且用电影名来命名文件。在下载之前还需要在该程序的所在目录建一个名为images 的文件夹。# encoding: utf-8from bs4 import BeautifulSoupfrom urllib import requestimport requestsdef get_page(url):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36,Referer: https://movie.douban.com/,}response requests.get(url, headers)return response.textdef get_img(url):text get_page(url)# 创建BeautifulSoup对象soup BeautifulSoup(text, lxml)# 限制获取到的img标签在【正在上映】内new soup.find(div, {id: nowplaying})# 查找img标签trs new.find_all(img)fns_num 1num len(trs)for tr in trs:# 获取img标签下的src和alturl_img tr.attrs[src]name tr.attrs[alt]# 下载剧照request.urlretrieve(url_img, images/ name .jpg)# 显示剧照下载的进度print(\r完成进度: {:.2f}%.format(fns_num * 100 / num), end)fns_num 1def main():url https://movie.douban.com/cinema/nowplaying/guangzhou/get_img(url)if __name__ __main__:main()展示运行结果的一部分4.总结下一次会使用正则表达式来继续实践还会分析xpath、BeautifulSoup和正则之间的区别。如果你想获取评分可以这样new soup.find(div, {id: nowplaying})trs new.find_all(li)for tr in trs:score tr.attrs[data-score]5.补充当我们碰到肖申克的救赎xpath可以这样获取title tr.xpath(.//span[classtitle]/text())[0]BeautifulSoup可以这样获取title soup.find(span, {class: title})