Python需要提交表单爬虫

来源:互联网 发布:淘宝客qq群推广技巧 编辑:程序博客网 时间:2024/06/11 04:38

Python爬虫的时候需要提高表单,使用post提交表单的速度比较慢,因此可以先找到要提交的表单数据。
网址如下:

https://www.hqms.org.cn/usp/roster/index.jsp

打开网址查看源代码,发现只有

<option value="7180">北京市</option>                                                <option value="7182">天津市</option>                                                <option value="7184">河北省</option>                                                <option value="7186">山西省</option>                                                <option value="7188">内蒙古自治区</option>                                                <option value="7190">辽宁省</option>                                                <option value="7192">吉林省</option>                                                <option value="7194">黑龙江省</option>                                                <option value="7196">上海市</option>                                                <option value="7198">江苏省</option>                                                <option value="7200">浙江省</option>                                                <option value="7202">安徽省</option>                                                <option value="7204">福建省</option>                                                <option value="7206">江西省</option>                                                <option value="7208">山东省</option>                                                <option value="7210">河南省</option>                                                <option value="7212">湖北省</option>                                                <option value="7214">湖南省</option>                                                <option value="7216">广东省</option>                                                <option value="7218">广西壮族自治区</option>                                                <option value="7220">海南省</option>                                                <option value="7222">重庆市</option>                                                <option value="7224">四川省</option>                                                <option value="7226">贵州省</option>                                                <option value="7228">云南省</option>                                                <option value="7230">西藏自治区</option>                                                <option value="7232">陕西省</option>                                                <option value="7234">甘肃省</option>                                                <option value="7236">青海省</option>                                                <option value="7238">宁夏回族自治区</option>                                                <option value="7240">新疆维吾尔族自治区</option>                                                <option value="21508">新疆生产建设兵团</option>

只有上述数据,并没有href网址,说明需要提交表单数据。
提交表单的内容通过如下方式进行查找:

1.按键F12。2.查看network。3.点击搜索。4.点击XHR。

通过上述方法就可以找到需要提交的表单数据。
整体代码如下:

# -*- coding: utf-8 -*-import csvimport urllib.requestimport redef getHtml(url):    page = urllib.request.urlopen(url)    html = page.read()    html = html.decode('utf8')    return htmlwith open("D:/XX/医院数据.csv", "w",encoding='utf8') as csvfile:    writer = csv.writer(csvfile)    file = open("D:/XX/爬虫.txt", 'r', encoding="utf8")    html = "https://www.hqms.org.cn/usp/roster/rosterInfo.jsp?provinceId=7182&htype=&hgrade=&hclass=&hname=&_=1511764383228"    for line in file:        # print(line.strip())        reg = r'<option value="(.*?)">(.*?)</option>'        source = re.compile(reg)        source_datas = source.findall(line.strip())        for source_data in source_datas:            print(source_data[1])            html = "https://www.hqms.org.cn/usp/roster/rosterInfo.jsp?provinceId=" + source_data[                0] + "&htype=&hgrade=&hclass=&hname=&_=1511764383228"            html = getHtml(html)            # print(html)            reg = r'{"provinceId":.*?,"hName":"(.*?)","hGrade":"(.*?)","hType":"(.*?)"}'            datas = re.compile(reg)            mubiao = datas.findall(html)            for yiyuan in mubiao:                print(yiyuan)                writer.writerow([source_data[1],yiyuan[0].strip(),yiyuan[1].strip(),yiyuan[2].strip()])
原创粉丝点击