本文主要是介绍python 爬取名字分数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
python 爬取名字分数
python 代码展示:
print 打印的方式:
打印变量的两种方法
一种是变量连着打印,用 %s, 一种是直接打印:
结果输出:
下面是给 名字批量打分数的例子,主要用到 bs4, requests 两个模块进行数据的访问和解析;
需要熟悉的内容有:
- requests get() 函数:
- beautifulsoup 函数解析: 其中包含 find_all 函数的使用;
- 文件的读取和写入,用 open 函数
- html 网页的查看方法
from urllib.parse import urlencode
import requests
from bs4 import BeautifulSoupurl = "https://life.httpcn.com/xingming.asp"def get_score(xing, ming):data = {"isbz" : 1,"xing" : xing.encode("gb2312"),"ming": ming.encode("gb2312"),"sex": 1,"data_type": 0,"year": 1980,"month": 9,"day": 16,"hour": 15,"minute": 10,"pid": "湖北省".encode("gb2312"),"cid": "武汉".encode("gb2312"),"wxxy": 0,"xishen": "木".encode("gb2312"),"yongshen": "木".encode("gb2312"),"check_agree": "agree","act": "submit"}headers = {"Content-Type": "application/x-www-form-urlencoded"}r = requests.get(url, data=urlencode(data), headers=headers)print(r.status_code)r.encoding = "gb2312"#print(r.text)soup = BeautifulSoup(r.text, "html.parser")divs = soup.find_all("div", class_="chaxun_b")bazi, wuge = 0, 0for div in divs:if "姓名五格评分" not in div.get_text():continue#print(div)fonts = div.find_all("font")bazi = fonts[0].get_text().replace("分", "").strip()wuge = fonts[1].get_text().replace("分", "").strip()return "%s%s"%(xing, ming), bazi, wuge
with open("input.txt") as fin, open("output.txt", "w") as fout:for line in fin:line = line.strip()xingming, bazi, wuge = get_score("吴", line)fout.write("%s\t%s\t%s\n"%(xingming, bazi, wuge))
这篇关于python 爬取名字分数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!