4444k面访问升最新网站怎么做网页买东西链接
4444k面访问升最新网站,怎么做网页买东西链接,施工企业岗位证书有哪些,设计网站公司搜索y湖南岚鸿知名题外话#xff1a;
《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人#xff0c;信不信未来的PI#xff0c;了解一下#xff0c;唯一一个高度与之持平的项目 前篇全片都是生硬的理论使用#xff0c;今天就放个静态爬取的实例让大家体验一下B…题外话
《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人信不信未来的PI了解一下唯一一个高度与之持平的项目 前篇全片都是生硬的理论使用今天就放个静态爬取的实例让大家体验一下BeautifulSoup的使用了解一些背后的原理。
顺便在这引入静态网页的概念——静态网页是指一次性加载所有内容的网页爬虫一次请求便能得到所有信息对爬虫非常友好适合练手 豆瓣top250电影信息爬取 我们来爬取每部电影的图片名称导演演员类型评分和它的一句话总结
继续对li标签进行分析,又发现信息又在div classinfo标签里而这标签只存在于li标签中其它地方不存在这样可以用find_all()方法把他们全部分离出来。
这里不选择li标签是它没有唯一性电影以外的内容也有li标签。 布置好伪装后就可以开始根据每个div classinfo标签进行信息筛选了:
图片链接是div classinfo的上上个兄弟标签div classpic的孙子img的src属性的值电影名有多个都在div classhd标签里用get_text()把它们串起来导演演员是p class标签的第一段字符串类型是p class标签的第二段字符串评分和评分人数都在div classstar标签里又用get_text()串起来一句话总结直属于span classinq标签html中的NBSP实际上是小写这里大写避免markdown识别对应字符串中的\xa0,可用replace方法替换掉url https://movie.douban.com/top250
headers {User-Agent : Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36}
rrequests.get(url,headersheaders)
soup BeautifulSoup(r.text,lxml)for each in soup.find_all(div,class_info):img_url each.previous_sibling.previous_sibling.a.img[src]#图片链接with open(*.jpg,wb) as img:#还可以顺便下载回来名字自起img.write(requests.get(img_url,headersheaders).content)titleeach.find(div,class_hd).get_text(stripTrue).replace(\xa0,)#标题actor list(each.find(p,class_).strings)[0].strip().replace(\xa0,)#导演演员type_ list(each.find(p,class_).strings)[1].strip().replace(\xa0,)#类型score each.find(div,class_star).get_text(/,stripTrue)#评分及人数quote each.find(span,class_inq).string#一句话总结print([img_url,title,actor,type_,score,quote])#这里只简单打出来看下怎样存储由你来决定
但是这样只有25部电影啊是的https://movie.douban.com/top250指向第一页我们现在只爬了一页其实还有9页还没爬啊这是就要构造网址了。 我们点到第二页发现网址变成了https://movie.douban.com/top2...第三页start条件值变成50我们可以得出结论每下一页start条件值就加25。第一页start0第二页start25.....第十页start225。这样就可以循环构造网页并爬取了这交给读者实现 下面笔者提供另一种思路网页不是有下一页的按钮吗右键检查一下发现它已经包含了要构造的部分了是一个属性值提取出来接到原网址上即得到下一页的网址这样能完全爬取所有页数不用像上面一样设置循环次数。 贴上完整代码
import requests
from bs4 import BeautifulSoupurl https://movie.douban.com/top250
with open(douban.txt, w, encodingutf-8) as f:while url:headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36}r requests.get(url, headersheaders)soup BeautifulSoup(r.text, lxml)for each in soup.find_all(div, class_info):img_url each.previous_sibling.previous_sibling.a.img[src]titleeach.find(div, class_hd).get_text(stripTrue).replace(\xa0, )actor list(each.find(p, class_).strings)[0].strip().replace(\xa0, )#将生成器list化后索引strip()去除两边空格再用空字符替换nbsptype_ list(each.find(p, class_).strings)[1].strip().replace(\xa0, )score each.find(div, class_star).get_text(/, stripTrue)if each.find(span, class_inq):#注意有部电影没有总结也就没有span classinq标签这里用if检测一下防止None使用string方法报错quote each.find(span, class_inq).stringelse:quote 没有总结哦print([img_url, title, actor, type_, score, quote])try:#到最后一页时没有下一页按钮会报TypeError这时用try语句让urlNone使while循环停止url https://movie.douban.com/top250 soup.find(span, class_next).a[href]except TypeError:url None
本实例的筛选方法已经讲的很细致了几乎提及了BeautifulSoup的所有方法希望大家能通过此实例能加深对BeautifulSoup的理解然后自己手打一些爬虫出来小的十几行多的几十行都可以爬贴吧什么的都可以。
还是那句话“只看不实践的程序员不是好程序员”
下一篇应该会将正则表达式更加强大也更加难的信息匹配方法 下下篇了解一下动态爬取?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87797.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!