new scrapy 08 搜索引擎关键词提交
通过代码实现传递关键词给搜索引擎,并返回搜索结果url和长度。
import requests
def getHTTPText(url):
try:
kv = {'q':'Python'}
r = requests.get(url, params=kv)
r.raise_for_status()
return ('url:%s'%(r.request.url)), ('len:%d'%(len(r.text)))
except:
return 'HTTPError'
if __name__ == '__main__':
url = 'https://www.so.com/s'
print(getHTTPText(url))
ps:如何正确理解if __name__ == '__main__'
:
参见:https://www.cnblogs.com/yaohong/p/8660209.html
- 按照我目前的认知,可以将该函数理解为一个接口,证明“我是我”——
if __name__ == '__main__'
, 才可以被使用。也就是说__name__
相当于一个指向身份的参数,若等于__main__
则为自己。小明在别人眼里为小明。但对自己来说是自己。 - 也即若同时存在相同名称的函数,若通过模块调用,很可能在调用函数时会发生同时出现的情况。
比如说在使用的python文件中有函数main(),若调用的模块中也有main(),很可能在输入结果中会响应。若在模块中引入if __name__ == '__main__' main()
,则可以避免。 - 我觉得我理解的非常不透彻,以后明白了再来看看。
new scrapy 09 网络图片爬取和存储
- 抓取图片
path = '/Users/mugpeng/Desktop/123.jpg'
url = path = '/Users/mugpeng/Desktop/123.jpg''https://mmbiz.qpic.cn/mmbiz_png/GIr2xTia5GJ67Gyuw7wiat5tyZC7ibHXNcukYcS6eyn6NYsGHJzibRI1OvxGLpKwbTYIWNNGLYV1UjJbLRtTsab3dQ/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1'
r.requests.get(url)
# 使用的是我推送中的一张图片
- 将抓取到的图片保存到本地.jpg中。
with open(path, 'wb') as f:
f.write(r.content)
f.close()
# 将本地path文件(.jpg)定义为标识符f,并将返回的内容写进去。
# r.content 将response的结果转换为二进制
# f.write() 将()内容写入f中
# f.close() 将文件关闭