是否还在跟男朋友或者第女朋友聊天的时候说不出他的专属情话,别急,哥们,这不就来了吗!!
1.首先我们需要在度娘的输入框中输入情话网。
这里的对象任你选择。。
现在呢,我们就是碎念选择一个,就好比如女朋友吧!
点击之后,右键选择检查,选择网络,这里的内容都是一个静态加载的内容,所以就不用担心打印的response没有数据。
2.点击之后,选择上方地址类似的数据包点击。
点击查看数据就可以了。。代码有点简单,就不多说了。直接上代码。。
代码思路:
1.发送请求
2.接受返回的参数骑牛并且解析内容。
3.保存打印内容
第一步就要发送请求
url='http://www.ainicr.cn/qh/t4.html'
def get_data(url):
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}
response=requests.get(url,headers=headers)
if response.status_code==200:
html_data=response.text
return html_data
要注意,这里可以加一个referer和一个cookie值,因为有时候,不知道什么鬼原因,打印的数据跟你想要的数据那不一样。
第二不,就是接受请求回来的数据,并且解析响应对象
要注意,get_list_list获取的是一级页面的响应内容,
就好比如这个页面,get_data_list只是解析这里三个的详情链接,真正的文本内容还是需要进入详情链接里面草拟能获取。
那么在parse_data中,我们需要接收在发送请求时的url,才能够根据数据解析详情页的文本内容。
最终我们将爬取的数据内容保存在一个txt中。
def get_list_url(data):
xml=etree.HTML(data)
hrefs=xml.xpath('//div[@class="item"]//h4/a/@href')#获取一级页面的详情链接
return hrefs
def parse_data(url):
qinghua_data=get_data(url)
xml=etree.HTML(qinghua_data)
cont=xml.xpath('//div[@class="stbody first"]//a/p/text()|//div[@class="stbody "]//a/p/text()')
for c in cont:
print('情话文本:',c)
print('==='*10)
save_data(c)
def save_data(c):
with open('qinghua.txt','a',encoding='utf-8')as f:
f.write(c)
f.write('\n')
然后呢,我们用一个函数来调用上述所有的函数。
##注意了,如果你的代码运行没有出现下方的http,那么就不要动他了,说不定哪天,你重写一遍,或者再次运行的话,尽就可能出现这个问题了。
出现了怎么办,没关系,直接加一个判断。
def main():
html_data1 = get_data(url)
hrefs=get_list_url(html_data1)
for h in hrefs:
if h not in 'http':
# http://www.ainicr.cn/index.php?s=80&module=sentence&view=label&aid=6442
h = 'http://www.ainicr.cn/' + h
print('详情页链接:', h)
parse_data(h)
如果你觉的你有很多个类型想选怎么办,没关系,来。
直接在最后的主函数中添加一个列表。
if __name__=='__main__':
# main()
url_list=['http://www.ainicr.cn/qh/t57.html','http://www.ainicr.cn/qh/t12.html','http://www.ainicr.cn/qh/t4.html']
for url in url_list:
# print(url)
print('当前采集到{}类别'.format(url))
main()
运行结果
希望你撩的他(她)不要不要的。。。
小白初始,不喜勿喷。老司机就不要搞了。。。
标签:爬取,http,get,网站,list,情话,url,html,data From: https://www.cnblogs.com/beilipython/p/16774864.html