制作网站教程哪个网站可以做加工代理的
制作网站教程,哪个网站可以做加工代理的,搜狗推广管家下载,女性时尚网站模板学习python前纠结了下#xff0c;到底是应该一个个知识点吃透#xff0c;然后写些小程序。还是应该快速掌握基础语法#xff0c;快速实践。思考后认为前者这么学习速度真心不高#xff0c;于是花2天时间看了下python3的语法#xff0c;虽然很多都不明白#xff0c;但是带… 学习python前纠结了下到底是应该一个个知识点吃透然后写些小程序。还是应该快速掌握基础语法快速实践。思考后认为前者这么学习速度真心不高于是花2天时间看了下python3的语法虽然很多都不明白但是带着小项目来学习直接解决问题。在项目中遇到问题查阅一点点解决这样很靠谱。 在实现一个最简单的爬虫前应该知道需要用到哪些东西? 1.如果发送一个http请求来抓取网页内容。 2.如何方便的解析html的dom节点如果有像phpquery这样的工具包就太简单了。 百度了下发现 urlib模块能解决第一个问题BeautifulSoup模块能解决第二个问题 urlib3模块简单使用 1 import urllib32 3 #请求的地址4 url https://www.baidu.com/5 6 http urllib3.PoolManager()7 r http.request(GET,url)8 9 print(r.status) #请求状态码
10 print(r.data) #获取内容 需要注意的是打印出内容(r.data)发现尼玛 总是有个 b 这样的东西在字符串最前面。google下发先大致是说python默认字符是ascii,但是请求的网页编码是utf8字符的获取的内容需要转成 utf8字符集然后在输出可以这么干。 print(r.data.decode(utf-8)) 然后重新运行发现大功告成。 再来看下BeautifulSoup模块,其实挺简单的就和jquery操作dom类似具体看文档即可. 1 from bs4 import BeautifulSoup2 import re #正则3 4 str 5 div classmenu6 ul classmain-menu7 li classfirst-menua href/index.php?mAdmincGoodsaindextypelist1品牌商管理/a/li8 li classfirst-menua hrefjavascript:;商品管理/a/li9 li classfirst-menua href/index.php?mAdmincMyDistributionaindex分销平台/a/li
10 li classfirst-menu
11 a hrefjavascript:;消息中心/a
12 ul classsub-menu clearfix
13 lia href/index.php?mAdmincNewsabusinessNewsList商家公告/a/li
14 lia href/index.php?mAdmincDistributionadistributionList申请分销/a/li
15 lia href/index.php?mAdmincMessageachatMessageList聊天消息/a/li
16 lia href/index.php?mAdmincSystemasystemNewsList系统公告/a/li
17 /ul
18 /li
19 li classfirst-menua hrefjavascript:;嗨库社区/a/li
20 li classfirst-menua hrefjavascript:;我的设置/a/li
21 /ul
22 /div
23
24
25 soup BeautifulSoup(str,html.parser,from_encodingutf-8)
26
27 print(获取所有的链接)
28 links soup.find_all(a); #list
29 for a in links:
30 print(a),print(a[href]) #获取标签和属性href
31
32 print(获取href为 /index.php?mAdmincGoodsaindextypelist1的url)
33 links soup.find(a,href/index.php?mAdmincGoodsaindextypelist1)
34 print(links.name,links[href],links.get_text())
35
36
37 print(通过class属性)
38 links soup.find(ul,class_main-menu)
39 print(links)
40
41 print(正则匹配)
42 links soup.find_all(a,hrefre.compile(rList)) # 加r - 要转义\只需要写成 \\即可 不然要写成\\\
43 print(links) 最后结合个模块来实现获取抓取页面的 a标签的href 1 from bs4 import BeautifulSoup2 import re #正则3 import urllib.parse4 import urllib35 6 r_url http://baike.baidu.com/link?url41wW1kkRvhT23i_c6258EtBeBv6Xwtz7gwd3t0q5k-xCs_ipCGRc_ixcCLMail3QtQe4ZRgOK83ek9aHm44QPa7 8 #发送请求获取内容9 http urllib3.PoolManager()
10 r http.request(GET,r_url)
11
12 str data r.data.decode(utf-8)
13
14
15 #挽尊学习法先发获取的内容生成文件看下到底是什么
16 f open(2.html,w)
17 f.write(data.decode(utf-8))
18 f.close()
19
20
21 soup BeautifulSoup(str,html.parser,from_encodingutf-8)
22 #通过正则获取所有href 为 /view/123/456.htm 这样的链接
23 links soup.find_all(a,hrefre.compile(r/view/[\d/]\.htm)) # 加r - \只需要一个 \转义 不然要写成\\\
24
25 for url in links:
26 new_url url[href]
27
28 将 r_url的域名- http://baike.baidu.com
29 和 新的url - /view/123/456.htm 组装起来
30
31 new_full_url urllib.parse.urljoin(r_url,new_url) #http://baike.baidu.com/view/123/456.htm
32 print(new_full_url) 参考https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ http://urllib3.readthedocs.io/en/latest/
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89122.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!