挺ok的kk 2021-10-31 22:31 采纳率: 66.7%
浏览 82
已结题

python多个def如何互相使用参数值

# coding=utf-8
import requests
from bs4 import BeautifulSoup
import json
import lxml


def configdata():
    requests.packages.urllib3.disable_warnings()
    indexurl = 'https://xxx/index.php?main_page=info_check&action=ajax_get_search_result_left'
    # 设置用于访问的请求头
    headers = {
        'accept': 'application/json, text/javascript, */*; q=0.01',
        'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
        'origin': 'www.xxx.com',
        'referer': 'https://www.xxx.com/index.php?main_page=advanced_search_result&inc_subcat=1&search_in_description=0&prm=1.5.62.0&keyword=123',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68',
    }

    data = {
        'keyword_filter': '123',
        'keyword': '123',
        'cate_count': '17664:1,5632:1,225:1,16580:1,2500:1,548:1,20837:1,229:1,18982:1,76:1,368:1,4050:1,4150:2,1015:3,54425:2,59321:1,109819:1',
        'ns_array': 'null',
        'result_use_best_seller': '0',
        'product_optimization': '',
        'get_query': '{"main_page":"advanced_search_result","inc_subcat":"1","search_in_description":"0","keyword":"123","language":"en"}',
        'light_select': '',
    }


def parse_index():
    session = requests.Session()

    resp = session.post(url=indexurl, data=data, headers=headers)
    print(resp)
    # print(resp.content)

    bsboj = BeautifulSoup(resp.content, 'lxml')  
    a_list = bsboj.find_all('a') 
    text = ''  
    for a in a_list:
        # print(a.get('href'))
        href = a.get('href')
        text += str(href) + '\n'  
    with open('baiduurl.txt', 'w') as f:  
        f.write(text)  


if __name__ == '__main__':
    configdata()
    parse_index()

第二个def用不了第一个def的参数值....求大神帮忙,小白刚学

  • 写回答

3条回答 默认 最新

  • 雾起、夜未央 2021-10-31 23:00
    关注

    把赋值的参数返回,并传递到下个方法,这样就可以了,望采纳,谢谢!

    
    # coding=utf-8
    
    import requests
    
    from bs4 import BeautifulSoup
    
    import json
    
    import lxml
    
    
    
    def configdata():
        requests.packages.urllib3.disable_warnings()
    
        indexurl = 'https://xxx/index.php?main_page=info_check&action=ajax_get_search_result_left'
    
        # 设置用于访问的请求头
    
        headers = {
    
            'accept': 'application/json, text/javascript, */*; q=0.01',
    
            'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    
            'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
    
            'origin': 'www.xxx.com',
    
            'referer': 'https://www.xxx.com/index.php?main_page=advanced_search_result&inc_subcat=1&search_in_description=0&prm=1.5.62.0&keyword=123',
    
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68',
    
        }
    
        data = {
    
            'keyword_filter': '123',
    
            'keyword': '123',
    
            'cate_count': '17664:1,5632:1,225:1,16580:1,2500:1,548:1,20837:1,229:1,18982:1,76:1,368:1,4050:1,4150:2,1015:3,54425:2,59321:1,109819:1',
    
            'ns_array': 'null',
    
            'result_use_best_seller': '0',
    
            'product_optimization': '',
    
            'get_query': '{"main_page":"advanced_search_result","inc_subcat":"1","search_in_description":"0","keyword":"123","language":"en"}',
    
            'light_select': '',
    
        }
    
        return indexurl,headers,data
    
    
    def parse_index(indexurl,headers,data):
        session = requests.Session()
    
        resp = session.post(url=indexurl, data=data, headers=headers)
    
        print(resp)
    
        # print(resp.content)
    
        bsboj = BeautifulSoup(resp.content, 'lxml')
    
        a_list = bsboj.find_all('a')
    
        text = ''
    
        for a in a_list:
            # print(a.get('href'))
    
            href = a.get('href')
    
            text += str(href) + '\n'
    
        with open('baiduurl.txt', 'w') as f:
            f.write(text)
    
    
    if __name__ == '__main__':
    
        indexurl,headers,data=configdata()
        print(indexurl)
        parse_index(indexurl,headers,data)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 赞助了问题酬金 10月31日
  • 创建了问题 10月31日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来